java中int数组的ArrayList

java中int数组的ArrayList,java,arraylist,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)); ArrayList<Integer> arl = new ArrayList<Integer>(); 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));
ArrayList<Integer> arl = new ArrayList<Integer>();
ArrayList arl=new ArrayList();
int a1[]={1,2,3};
加上(0,a1);
System.out.println(“Arraylist包含:”+arl.get(0));
它给出输出:
Arraylist包含:[I@3e25a5

现在我的问题是:

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

  • arl.get(0)[1]


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

    ArrayList<int[]> arl=new ArrayList<int[]>();
    int a1[]={1,2,3};
    arl.add(0,a1);
    System.out.println("Arraylist contains:"+arl.get(0));
    
    ArrayList<Integer> arl = new ArrayList<Integer>();
    
    最后,但并非最不重要的一点是,要打印
    ArrayList
    ,您可以使用
    toString()的内置功能:

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

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

    在开始使用Java容器之前,我建议先阅读Java容器。

    在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);
        }
    
    int[]contentFromList=arl.get(0);
    for(int i=0;i
    每个人都是对的。您不能直接打印int[]对象,但也不需要不使用整数数组的ArrayList

    使用

    Arrays.toString(arl.get(0))
    
    如果要在字符串之间插入任何内容(如逗号),则表示将字符串对象拆分为子字符串

    以下是我认为amv从int数组的角度寻找的内容

    System.out.println("Arraylist contains: " 
        + arl.get(0)[0] + ", " 
        + arl.get(0)[1] + ", " 
        + arl.get(0)[2]);
    
    这个答案对amv来说有点晚了,但对其他人来说可能还是有用的。

    您必须使用
    而不是

    inta1[]={1,2,3};
    ArrayList arl=新的ArrayList();
    对于(int i:a1){
    arl.添加(i);
    System.out.println(“Arraylist包含:”+arl.get(0));
    }
    
    比这更简单

    List<Integer> arrayIntegers = new ArrayList<>(Arrays.asList(1,2,3));
    
    arrayIntegers.get(1);
    
    List arrayIntegers=newarraylist(Arrays.asList(1,2,3));
    数组积分。get(1);
    
    在第一行中创建对象,在构造函数中向列表传递数组参数


    第二行是List类的所有方法:.get(…)

    java.util.Arrays.toString()
    将java数组转换为字符串:

    System.out.println("Arraylist contains:"+Arrays.toString(arl.get(0)));
    
    ArrayList list=new ArrayList();
    整数,总数=0;
    对于(int i=0;i设置:

        List<int[]> intArrays=new ArrayList<>();
        int anExample[]={1,2,3};
        intArrays.add(anExample);
    
    要检索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);
           }
    }
    

    可以基于此逻辑执行输出格式设置。Goodluck!!

    Integer是包装类,int是基本数据类型。始终更喜欢在ArrayList中使用Integer。

    对于经验不足的人,我决定添加一个示例来演示如何基于此问题输入和输出整数数组的ArrayList

    ArrayList ArrayList=new ArrayList();
    而(n>0)
    {
    int d=scan.nextInt();
    整数温度[]=新整数[d];
    对于(int i=0;i

    多亏了这个问题的答案,我得到了正确的答案。我相信这令人满意地回答了OP的问题,尽管有点晚了,并且可以作为对那些经验较少的人的解释。

    和回答问题2:arl.get(0)[I]只需注意:
    ArrayList
    并不意味着“数组列表”而是一个在内部使用数组的列表。因此,您可以使用
    ArrayList
    并添加您的值:
    arl.add(Integer.valueOf(1);…
    我将这个问题解释为需要一个整数数组的列表。这一点似乎非常明确。他们试图获取(0)并期望该值为[1,2,3]。大多数答案似乎回答了错误的问题。他要求的是整型数组列表,而不是整型数组列表。但如果你阅读他的问题,你就会明白他是新来的,只是试图获取整型数组列表,并通过访问特定索引来获取值。)我看了之后,似乎很清楚他想要的是整型数组的列表。他在区分
    arl[0]
    a1[0]
    例如。@SumitRamteke-您的编辑有效地使这篇文章无法回答问题。如果有这样的感觉,我很抱歉。我希望您不同意我的编辑,尽管这是一种个人的解决方案。我已经做了一些更改,让它理解您所写的内容是正确的,但是一般性的。只需遵循com社区实践,不要另眼相看这对我很有帮助。我当时正使劲想弄明白为什么ArrayList a=new ArrayList()不起作用。我发现Java语法很复杂。我想Java认为long[1]、long[2]、long[3]都是同一类型?注意:如果你试图转换
    int[]
    列表
        List<int[]> intArrays=new ArrayList<>();
        int anExample[]={1,2,3};
        intArrays.add(anExample);
    
        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 );
        }
    
        //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);
           }
    }
    
        ArrayList<Integer[]> arrayList = new ArrayList<Integer[]>();
        while(n > 0)
        {
            int d = scan.nextInt();
           Integer temp[] = new Integer[d];
            for (int i = 0 ; i < d ; i++)
            {
                int t = scan.nextInt();
                temp[i]=Integer.valueOf(t);
            }
            arrayList.add(temp);
            n--;
        }//n is the size of the ArrayList that has been taken as a user input & d is the size 
        //of each individual array.
    
         //to print something  out from this ArrayList, we take in two 
        // values,index and index1 which is the number of the line we want and 
        // and the position of the element within that line (since the question
        // followed a 1-based numbering scheme, I did not change it here)
    
        System.out.println(Integer.valueOf(arrayList.get(index-1)[index1-1]));