java中int数组的ArrayList

amv*_*amv 52 java arraylist

我是arraylist概念的新手.我做了一个简短的程序如下:

ArrayList<int[]> arl=new ArrayList<int[]>();
int a1[]={1,2,3};
arl.add(0,a1);
System.out.println("Arraylist contains:"+arl.get(0));
Run Code Online (Sandbox Code Playgroud)

它给出了输出: Arraylist contains:[I@3e25a5

现在我的问题是:

  1. 如何显示正确的值,即1 2 3.
  2. 如何访问数组a1的单个元素,即如果我想知道a1 [1]的值.

Rau*_*ene 69

首先,对于初始化容器,你不能使用原始类型(即int;你可以使用,int[]但你只需要一个整数数组,我认为没有用).相反,您应该使用Integer,如下所示:

ArrayList<Integer> arl = new ArrayList<Integer>();
Run Code Online (Sandbox Code Playgroud)

要添加元素,只需使用以下add函数:

arl.add(1);  
arl.add(22);
arl.add(-2);
Run Code Online (Sandbox Code Playgroud)

最后,但并非最不重要的是,对于打印,ArrayList您可以使用以下内置功能toString():

System.out.println("Arraylist contains: " + arl.toString());  
Run Code Online (Sandbox Code Playgroud)

如果要访问i元素,其中i是从0到array-1长度的索引,您可以执行以下操作:

int i = 0; // Index 0 is of the first element
System.out.println("The first element is: " + arl.get(i));
Run Code Online (Sandbox Code Playgroud)

我建议先阅读Java Containers,然后再开始使用它们.


tru*_*ity 23

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

  2. arl.get(0)[1]

  • 并回答问题2:arl.get(0)[i] (2认同)

Kar*_*omo 15

比这更简单.

List<Integer> arrayIntegers = new ArrayList<>(Arrays.asList(1,2,3));

arrayIntegers.get(1);
Run Code Online (Sandbox Code Playgroud)

在第一行中创建对象,在构造函数中将数组参数传递给List.

在第二行中,您拥有List类的所有方法:.get(...)


mte*_*ong 6

设置:

    List<int[]> intArrays=new ArrayList<>();
    int anExample[]={1,2,3};
    intArrays.add(anExample);
Run Code Online (Sandbox Code Playgroud)

要按索引检索ArrayList 中的单个 int[] 数组

    int[] anIntArray = intArrays.get(0); //'0' is the index
    //iterate the retrieved array an print the individual elements
    for (int aNumber : anIntArray ) { 
        System.out.println("Arraylist contains:" + aNumber );
    }
Run Code Online (Sandbox Code Playgroud)

要检索ArrayList 中的所有 int[] 数组

    //iterate the ArrayList, get and print the elements of each int[] array  
    for(int[] anIntArray:intArrays) {
       //iterate the retrieved array an print the individual elements
       for (int aNumber : anIntArray) {
           System.out.println("Arraylist contains:" + aNumber);
       }
}
Run Code Online (Sandbox Code Playgroud)

可以基于此逻辑执行输出格式化。祝你好运!!


Eve*_*one 5

在java中,数组是一个对象.因此,对arl.get(0)的调用返回一个原始int []对象,该对象在您对System.out的调用中显示为ascii.

因此,第一个问题的答案就是

System.out.println("Arraylist contains:"+Arrays.toString( arl.get( 0 ) ) );
Run Code Online (Sandbox Code Playgroud)

如果要查找特定元素,则必须引用返回的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);
    }
Run Code Online (Sandbox Code Playgroud)