I am trying to pass a string array as an argument to the constructor of Wetland class;
I don't understand how to add the elements of string array to the string array list.
import java.util.ArrayList;
public class Wetland {
private String name;
private ArrayList species;
public Wetland(String name, String[] speciesArr) {
this.name = name;
for (int i = 0; i < speciesArr.length; i++) {
species.add(speciesArr[i]);
}
}
}
解决方案
You already have built-in method for that: -
List species = Arrays.asList(speciesArr);
NOTE: - You should use List species not ArrayList species.
Arrays.asList returns a different ArrayList -> java.util.Arrays.ArrayList which cannot be typecasted to java.util.ArrayList.
Then you would have to use addAll method, which is not so good. So just use List
NOTE: - The list returned by Arrays.asList is a fixed size list. If you want to add something to the list, you would need to create another list, and use addAll to add elements to it. So, then you would better go with the 2nd way as below: -
String[] arr = new String[1];
arr[0] = "rohit";
List newList = Arrays.asList(arr);
// Will throw `UnsupportedOperationException
// newList.add("jain"); // Can't do this.
ArrayList updatableList = new ArrayList();
updatableList.addAll(newList);
updatableList.add("jain"); // OK this is fine.
System.out.println(newList); // Prints [rohit]
System.out.println(updatableList); //Prints [rohit, jain]