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. 如何显示正确的值,即1 2 3。
  2. 我如何访问数组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容器,然后开始使用它们。

  1. 使用Arrays.toString( arl.get(0) )

  2. 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);