我有一个二维数组,我想用几个一维数组来填充它。我的代码如下:
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
中删除了元素。最后,array
和list
都是空的。如何在array
中添加列表并在array.add(list)
之后清除list
发布于 2016-10-28 04:31:02
您可以克隆列表:
array.add(list.clone());
或者可以在循环本身内实例化列表对象:
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);
}
那你就不需要清理了。
发布于 2016-10-28 04:35:36
你可以这样做:
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);
}
如果你还想列一个数组的话:
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);
}
发布于 2016-10-28 04:39:12
您可以创建要添加到现有实例中的ArrayList<>
的新实例。
while (ts2.next()) {
List<String> list = new ArrayList<>();
list.add(ts2.getString("userName"));
list.add(ts2.getString("userId"));
array.add(list);
}
然而,更好的方法是将这些值映射到类的新实例中。
List<MyClass> = new ArrayList<>();
while (ts2.next()) {
MyClass i = new MyClass(ts2.getString("userName"), ts2.getString("userId"));
array.add(i);
}
https://stackoverflow.com/questions/40305147
复制