【发布时间】:2014-06-23 19:31:22
【问题描述】:
我有一个这样声明的数组列表:
ArrayList<ArrayList<String>> data = new ArrayList<ArrayList<String>>;
我已经用从文本文件中解析出来的字符串填充了内部数组列表。稍后我会将所有数组列表添加到数据库中。
在我第一次解析并将数据添加到内部数组列表之后,我想进入并添加在我正在解析的文件中找不到的其他数据。
这是我尝试过的代码,但它不起作用:
void SpecialOperations(ArrayList<ArrayList<String>> data) {
for(ArrayList<String> sub: data){
String ip = sub.get(0);
//System.out.println(sub.get(0));
sub.add(1,ip);
}
}
在此示例中,行中的第一个元素是 IP 地址。我正在尝试将相同的确切 IP 地址添加到第二个元素并正确推送其余数据。 (将有两个相同的 IP 地址彼此相邻)。我计划稍后填充 IP 地址,但只是想先添加它。
我知道在我将我的 2d ArrayList 发送到“SpecialOperations”之前,它会填充有效数据,因为我可以循环遍历它并打印出正确的数据,所以我知道这不是空数据的问题。
编辑:我之前没有对数组列表以外的列表使用过许多其他数据类型。我用过哈希图和树图,但不多。如果这不是正确的方法,您能解释一下我如何使用不同的方法吗?
Edit2:自动链接的问题说我的已经回答了,但没有回答我的问题。我知道如何添加到中间。我认为我实现 2d ArrayList 的方式有问题。
【问题讨论】:
-
加在中间让我觉得LinkedList在ArrayList之前。
-
如果你需要一个排序列表,为什么不使用一个集合,比如 TreeSet?
-
@duffymo 我认为数组列表的“添加”功能会为我推送数据。我从未在 Java 中使用过 LinkedLists。你能解释一下为什么这是一个更好的选择吗? (或就此而言的树集)。
-
顺便说一句:类型声明应该使用接口(List),而不是实现(ArrayList)。