我可以将数组插入数组并在Java中读取吗?像这样:
ArrayList<Integer> array = new ArrayList<>();
array.add([1,4,5]);
array.add([3,7,2]);
数组:
{ [1,4,5], [3,7,2] }
读起来像:
print(array[0][1]); //prints 4
感谢。
答案 0 :(得分:4)
您可以撰写ArrayList<int[]>
并传递.add(new int[]{...})
等值。
例如,
List<int[]> list = new ArrayList<>();
list.add(new int[]{1, 2, 3});
要打印出值,您应该首先int[]
获取get(int index)
数组,然后通过[index]
从此数组中获取值:
System.out.print(list.get(0)[0]); // prints 1
关于评论中的混乱。
List
或List<Object>
。int[]
是一个数组,因此它是一个引用类型,可以用作通用参数。int
是一个原型,它不能与泛型一起使用/使用。考虑它的包装类 - Integer
。<>
。为什么?防止“样板代码”。在Java SE 7及更高版本中,只要编译器可以确定或推断,就可以用一组空的类型参数(
<>
)替换调用泛型类的构造函数所需的类型参数。来自上下文的类型参数。这对尖括号<>
被非正式地称为钻石List<int[]> list = new ArrayList<>();
List<int[]> list = new ArrayList<int[]>();
等同于之前的
答案 1 :(得分:1)
您可以将整数数组添加到arraylist
,但是必须将arraylist定义为:
List<int[]> list = new ArrayList<int[]>();
事实上,更通用的版本是:
List<Object> list = new ArrayList<Object>();
array.add([1,4,5]);
正确实施为
list.add(new int[]{1,4,5});
print(array[1][2]);
正确实施:
System.out.println(((int [])list.get(1))[2]);
答案 2 :(得分:1)
以最少的代码行快速填充arrayList:
Integer[] numArray = {1, 2, 3, 4, 5, 0, 9, 8, 7, 6};
List<Integer> numList = new ArrayList<>(Arrays.asList(numArray));
答案 3 :(得分:0)
ArrayList是List类型。
如果你想创建2d数组(数组内的数组)
int[][] a = new int[][]{{1,4,5},{3,7,2}};
System.out.println(a[0][1]);
答案 4 :(得分:0)
您想使用ArrayLists的ArrayList
ArrayList<ArrayList<Integer>> intArrays = new ArrayList<ArrayList<Integer>>();
//rows
for(int i =0;i<4;i++)
{
intArrays.add(new ArrayList<Integer>());
//cols
for(int j=0;j<4;j++)
{
intArrays.get(i).add(j);
}
}
//rows
for(int i =0;i<4;i++)
{
//cols
for(int j=0;j<4;j++)
{
System.out.print(intArrays.get(i).get(j));
}
System.out.println();
}
答案 5 :(得分:-1)
这已经过测试并且可以正常工作。
int[] ar = {10, 20, 20, 10, 10, 30, 50, 10, 20};
ArrayList<Integer> list = new ArrayList<>();
for(int i:ar){
list.add(new Integer(i));
}
System.out.println(list.toString());
// prints : [10, 20, 20, 10, 10, 30, 50, 10, 20]