101

I'm having a lot of trouble turning an array into an ArrayList in Java. This is my array right now:

Card[] hand = new Card[2];

"hand" holds an array of "Cards". How this would look like as an ArrayList?

1

4 Answers 4

88

This will give you a list.

List<Card> cardsList = Arrays.asList(hand);

If you want an arraylist, you can do

ArrayList<Card> cardsList = new ArrayList<Card>(Arrays.asList(hand));
Sign up to request clarification or add additional context in comments.

1 Comment

Nope! This gives an object that acts as a List wrapper around an underlying object. Unlike a real ArrayList, the resulting List is not resizable, and attempts to .add elements to the end of it will result in UnsupportedOperationException.
39

As an ArrayList that line would be

import java.util.ArrayList;
...
ArrayList<Card> hand = new ArrayList<Card>();

To use the ArrayList you have do

hand.get(i); //gets the element at position i 
hand.add(obj); //adds the obj to the end of the list
hand.remove(i); //removes the element at position i
hand.add(i, obj); //adds the obj at the specified index
hand.set(i, obj); //overwrites the object at i with the new obj

Also read this http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html

2 Comments

Thank you! One last quick question.. how would I accept an arraylist into a method? Right now I have: public void getHandValue(ArrayList< Card > hand) {...} The arraylist is in my main args. Just the word "ArrayList" is coming up as an error.
you should be able to have a method signature void getHandValue(ArrayList<Card> hand) the problem is more than likely when you are calling that method.
14
List<Card> list = new ArrayList<Card>(Arrays.asList(hand));

Comments

1

declaring the list (and initializing it with an empty arraylist)

List<Card> cardList = new ArrayList<Card>();

adding an element:

Card card;
cardList.add(card);

iterating over elements:

for(Card card : cardList){
    System.out.println(card);
}

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.