如何从包含长数组的ArrayList中检索元素

时间:2017-09-04 11:23:52

标签: java arraylist

如何从ArrayList<long[]>检索元素?

我是这样写的:

ArrayList<long []>  dp=new ArrayList<>();

//m is no of rows in Arraylist
for(int i=0;i<m;i++){
    dp.add(new long[n]);   //n is length of each long array
    //so I created array of m row n column
}

现在如何获取每个元素?

3 个答案:

答案 0 :(得分:0)

该列表中的每个元素都是一个数组......因此您需要仔细添加以下内容: 使用匿名数组new long[] { 1L, 2L, 3L } 或使用新关键字new long[5]

指定尺寸
public static void main(String[] args) throws Exception {
    ArrayList<long[]> dp = new ArrayList<>();
    // add 3 arrays
    for (int i = 0; i < 3; i++) {
        dp.add(new long[] { 1L, 2L, 3L });
    }
    // add a new array of size 5
    dp.add(new long[5]); //all are by defaul 0
    // get the info from array
    for (long[] ls : dp) {
        for (long l : ls) {
            System.out.println("long:" + l);
        }
        System.out.println("next element in the list");
    }
}

答案 1 :(得分:0)

您从ArrayList得到的数据与获取数据的方式相同。例如,要获得long[]中存储的第十个ArrayList,您需要使用get方法:

long[] tenthArray = dp.get(9);

答案 2 :(得分:-1)

您还可以拥有一个包含内部long数组的objetcs ArrayList。但到目前为止,您的代码存在的问题是您没有在每个长数组中添加任何值。

public class NewClass {

    private static class MyObject {
        private long []v;

        public MyObject(int n) {
            v = new long[n];
        }

        @Override
        public String toString() {
            String x = "";

            for (int i = 0; i < v.length; i++) {
                x += v[i] + " ";
            }
            return x;
        }
    }

    public static void main(String[] args) {
        ArrayList<MyObject> dp = new ArrayList();
        int m = 3;
        int n = 5;

        for (int i = 0; i < m; i++) {
            dp.add(new MyObject(n));
        }

        for (MyObject ls : dp) {
            System.out.println(ls);
        }
    }
}