首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将数组列表添加到java的2d数组列表中。

将数组列表添加到java的2d数组列表中。
EN

Stack Overflow用户
提问于 2016-10-28 12:29:25
回答 3查看 1.5K关注 0票数 0

我有一个二维数组,我想用几个一维数组来填充它。我的代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
ArrayList<ArrayList<String>> array = new ArrayList<ArrayList<String>>(); 
ArrayList<String> list = new ArrayList<String>();

while (ts2.next()) {
    list.add( ts2.getString("userName");
    list.add(ts2.getString("userId"));  
    array.add(list);
    list.clear();
}

我注意到list.clear()list中删除了元素,但是也从array中删除了元素。最后,arraylist都是空的。如何在array中添加列表并在array.add(list)之后清除list

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-28 12:31:02

您可以克隆列表:

代码语言:javascript
代码运行次数:0
运行
复制
array.add(list.clone());

或者可以在循环本身内实例化列表对象:

代码语言:javascript
代码运行次数:0
运行
复制
    ArrayList<ArrayList<String>> array = new ArrayList<ArrayList<String>>(); 

    while (ts2.next()) {
        ArrayList<String> list = new ArrayList<String>();
        list.add( ts2.getString("userName");
        list.add(ts2.getString("userId"));  
        array.add(list);
    }

那你就不需要清理了。

票数 1
EN

Stack Overflow用户

发布于 2016-10-28 12:35:36

你可以这样做:

代码语言:javascript
代码运行次数:0
运行
复制
    ArrayList<String[]> arr = new ArrayList<String[]>();
    String[] str = new String[2];
    while (ts2.next()) {
        str[0] = ts2.getString("userName");
        str[1] = ts2.getString("userId");  
        arr.add(str);
    }

如果你还想列一个数组的话:

代码语言:javascript
代码运行次数:0
运行
复制
    ArrayList<ArrayList<String>> arr = new ArrayList<ArrayList<String>>();
    while (ts2.next()) {
        ArrayList<String> arrString = new ArrayList<String>();
        arrString.add(ts2.getString("userName"));
        arrString.add(ts2.getString("userId"));  
        arr.add(arrString);
    }
票数 1
EN

Stack Overflow用户

发布于 2016-10-28 12:39:12

您可以创建要添加到现有实例中的ArrayList<>的新实例。

代码语言:javascript
代码运行次数:0
运行
复制
while (ts2.next()) {
    List<String> list = new ArrayList<>();
    list.add(ts2.getString("userName"));
    list.add(ts2.getString("userId"));  
    array.add(list);
}

然而,更好的方法是将这些值映射到类的新实例中。

代码语言:javascript
代码运行次数:0
运行
复制
List<MyClass> = new ArrayList<>();

while (ts2.next()) {
    MyClass i = new MyClass(ts2.getString("userName"), ts2.getString("userId"));
    array.add(i);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40305147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档