Roy Hinkley
Roy Hinkley

Reputation: 10651

Cannot cast from String[] to ArrayList<String>

I have a resource string array that I want to put into an ArrayList, however the datatype that comes back is a String array. The string[] cannot be directly cast to ArrayList w/o receiving the following error:

Cannot cast from String[] to ArrayList

How to I convert the String[] datatype to ArrayList?

Edit

I have an adapter whose constructor takes an ArrayList and a resource string-array that I want to populate it.

Upvotes: 0

Views: 5530

Answers (3)

Kevin DiTraglia
Kevin DiTraglia

Reputation: 26078

how about this

import java.util.Collections; 

String[] myStringArray = new String[] {"foo", "bar", "baz"}; 
List myList = new ArrayList(myStringArray.length);
Collections.addAll(myList, myStringArray); 

Upvotes: 2

Ted Hopp
Ted Hopp

Reputation: 234857

If you can make do with a List<String> (and not specifically an ArrayList<String>), you can use:

List<String> list = Arrays.asList(stringArray);

Otherwise, you can do this:

ArrayList<String> list = new ArrayList<String>(Arrays.asList(stringArray));

However, the latter is less efficient (in both time and object creation count) than the other suggested solutions. Its only benefit is that it keeps the code down to one line and is easy to comprehend at a glance.

Upvotes: 9

dennisdrew
dennisdrew

Reputation: 4399

public ArrayList<String> arrayToArrayList(String[] array){
    ArrayList<String> arrayList = new ArrayList<String>(array.length);
    for(String string : array){
        arrayList.add(string);
    }

    return arrayList;
}

Upvotes: 2

Related Questions