【发布时间】:2015-09-08 22:47:13
【问题描述】:
我正在尝试从基于后缀的列表创建子列表。
public class Test {
public static void main(String args[]) {
List<List<String>> subList = new ArrayList<List<String>>();
List<String> myList = new ArrayList<String>();
myList.add("Text_1");
myList.add("XYZ_3");
myList.add("ABC_1");
myList.add("Text_2");
myList.add("Text_3");
myList.add("XYZ_1");
myList.add("XYZ_2");
myList.add("ABC_2");
for (String item : myList) {
List<String> tempList = new ArrayList<String>();
String suffix = item.substring(item.lastIndexOf("_"));
tempList.add(item);
for (String value : myList) {
if (value.endsWith(suffix) && !tempList.contains(value)) {
tempList.add(value);
}
}
System.out.println(tempList);
}
}
}
我期待如下
// Text_1, ABC_1, XYZ_1
// Text_2, ABC_2, XYZ_2
// Text_3, XYZ_3
但实际是
[Text_1, ABC_1, XYZ_1]
[XYZ_3, Text_3]
[ABC_1, Text_1, XYZ_1]
[Text_2, XYZ_2, ABC_2]
[Text_3, XYZ_3]
[XYZ_1, Text_1, ABC_1]
[XYZ_2, Text_2, ABC_2]
[ABC_2, Text_2, XYZ_2]
感谢任何帮助。谢谢
【问题讨论】:
-
每次迭代都会创建一个新的
ArrayList对象。 -
我想在 tempList 中包含所有分组项。你觉得这有什么问题吗?
标签: java arraylist collections iterator sublist