java中int数组的ArrayList
我刚接触到数据列表的概念。 我已经做了几行代码为:
ArrayList<int[]> arl=new ArrayList<int[]>(); int a1[]={1,2,3}; arl.add(0,a1); System.out.println("Arraylist contains:"+arl.get(0));
它给出的输出: Arraylist contains:[I@3e25a5
现在我的问题是:
- 如何显示正确的值,即1 2 3。
- 我如何访问数组a1的单个元素,即如果我想知道在a1 [1]的值。
首先,为了初始化一个容器,你不能使用一个原始types(即int
;你可以使用int[]
但因为你只需要一个整数数组,我没有看到它的用处)。 相反,你应该使用Integer
,如下所示:
ArrayList<Integer> arl = new ArrayList<Integer>();
要添加元素,只需使用add
函数:
arl.add(1); arl.add(22); arl.add(-2);
最后但并非最不重要的是,对于打印ArrayList
您可以使用toString()
的内置function:
System.out.println("Arraylist contains: " + arl.toString());
如果你想访问i元素,其中我是从0到数组-1长度的索引,你可以做一个:
int i = 0; // Index 0 is of the first element System.out.println("The first element is: " + arl.get(i));
我build议先阅读Java容器,然后开始使用它们。
-
使用
Arrays.toString( arl.get(0) )
。 -
arl.get(0)[1]
在java中,数组是一个对象。 因此,对arl.get(0)的调用返回一个原始的int []对象,它在调用System.out时显示为ascii。
因此,你的第一个问题的答案是
System.out.println("Arraylist contains:"+Arrays.toString( arl.get( 0 ) ) );
如果你正在寻找特定的元素,返回的int []对象必须被引用。 你的第二个问题的答案会是这样的
int[] contentFromList = arl.get(0); for (int i = 0; i < contentFromList.length; i++) { int j = contentFromList[i]; System.out.println("Value at index - "+i+" is :"+j); }
比这更简单。
List<Integer> arrayIntegers = new ArrayList<>(Arrays.asList(1,2,3)); arrayIntegers.get(1);
在第一行中创build对象,并在构造函数中将数组parameter passing给List。
在第二行中,您有List类的所有方法:.get(…)
每个人都是对的。 你不能直接打印一个int []对象,但也不需要使用整数数组的ArrayList。
使用,
Arrays.toString(arl.get(0))
意味着如果你想插入任何东西,比如逗号,就把String对象分割成一个子串。
以下是我认为amv从int数组视angular寻找的内容。
System.out.println("Arraylist contains: " + arl.get(0)[0] + ", " + arl.get(0)[1] + ", " + arl.get(0)[2]);
这个答案对于amv来说有点晚了,但对其他人可能还是有用的。
您必须使用<Integer>
而不是<int>
:
int a1[] = {1,2,3}; ArrayList<Integer> arl=new ArrayList<Integer>(); for(int i : a1) { arl.add(i); System.out.println("Arraylist contains:" + arl.get(0)); }
java.util.Arrays.toString()
将Java数组转换为string:
System.out.println("Arraylist contains:"+Arrays.toString(arl.get(0)));
ArrayList<Integer> list = new ArrayList<>(); int number, total = 0; for(int i = 0; i <= list.size(); i++){ System.out.println("Enter number " + (i + 1) + " or enter -1 to end: "); number = input.nextInt(); list.add(number); if(number == -1){ list.remove(list.size() - 1); break; } } System.out.println(list.toString()); for(int i: list){ System.out.print(i + " "); total+= i; } System.out.println(); System.out.println("The sum of the array content is: " + total);