我想创建一个包含ArrayList<String>元素的数组。
我已经尝试过。
我已经尝试过。
ArrayList<String> name[] = new ArrayList<String>()[];
但似乎这并不起作用。
ArrayList<String> name[] = new ArrayList<String>()[];
但似乎这并不起作用。
您无法创建一个泛型类型的数组。
相反,您可以创建一个 ArrayList<ArrayList<String>>
。
正确的方法是:
ArrayList<String> name[] = new ArrayList[9];
然而,这也行不通,因为你不能用泛型来创建一个数组,你所尝试做的是一个矩阵,应该像这样完成:
String name[][];
我知道这已经有点过时了,但为了未来的查看,我仍然会回应这个问题。
如果你真的想要一个 ArrayList<String>[]
结构,你可以简单地创建一个扩展自 ArrayList 的类,并创建一个该类的数组:
public class StringArrayList extends ArrayList<String>{}
并且在您的实现中:
ArrayList<String> name[] = new StringArrayList[9];
这是一个示例:
package testspace.arrays;
import java.util.List;
public class TestStringArray {
public static void main(String[] args) {
List<String>[] arr = new StringArrayList[10];
for(int i = 0; i < arr.length; i++){
// CANNOT use generic 'new ArrayList<String>()'
arr[i] = new StringArrayList();
for(int j = 0; j < arr.length; j++){
arr[i].add("list item #(" + j + "|" + i + ")");
}
}
StringBuilder sb = new StringBuilder();
for(final List<String> list : arr){
for(final String str : list){
sb.append(str + " ");
}
sb.append("\n");
}
System.out.println(sb.toString());
}
}
注意 如果你使用以下语法 arr[i] = new ArrayList<String>()
,会导致运行时错误。
Map<Integer,List<String>>
?ArrayList<ArrayList<String>> name= new ArrayList<ArrayList<String>>(/*capacity*/);
ArrayList
数组,您将需要逐个初始化数组的每个位置:int size = 9; // 9 is just an example
// you can remove the annotation, but you'll be warned:
// Type safety: The expression of type ArrayList[] needs unchecked conversion
// to conform to ArrayList<String>[]
@SuppressWarnings("unchecked")
ArrayList<String> name[] = new ArrayList[ size];
for( int i = 0; i < size; i++) {
name[ i] = new ArrayList<String>();
}
ArrayList数组,使用循环的示例
//Declare
Object[] arrayLists = new Object[size];
//Fill
for (int j=0; j < size; j++) {
arrayLists[k]= generateAnArrayList(j); //or whatnot
}
//Usage
for (int j=0; j < size; j++) {
ArrayList<Long> al = (ArrayList<Long>) arrayLists[j];
//do something here
}
有一种方法可以只对您的代码进行少量修改就能实现它。
ArrayList<String>[] name = new ArrayList[10];
这将给你一个ArrayList数组。
ArrayList[] arr=new ArrayList[5];
for(int i=0;i<5;i++)
arr[i]=new ArrayList<String>();
arr[1].add("35");
arr[1].add("ME");
arr[1].add("HELLO");
System.out.println(arr[1]);
输出:
[35, ME, HELLO]
// This is the not correct way
ArrayList<String> name[] = new ArrayList<String>()[];
// This is the correct way
ArrayList<String> list[] = new ArrayList[2];
list[0] = new ArrayList();
list[1] = new ArrayList();
list[0].add("Some String 11");
list[0].add("Some String 22");
list[1].add("Some String 1111");
list[1].add("Some String 2222");