[英]List of String lists in Java
我有一个初始化为 object1 的字符串列表列表,如下所述:
List<List<String>> object1 = Arrays.asList(Arrays.asList("A", "B", "C"),
Arrays.asList("D", "E", "F"),
Arrays.asList("G", "H", "I"));
现在我想创建一个新的字符串列表列表 object 让 object 2 如下所述:
List<List<String>> object2 = new ArrayList<>();
在创建与“object1”相同的新 object“object2”时,我不确定上述编写的语法是否正确。
我想使用两个 for 循环(外循环和内循环)迭代 object1 中存在的每个元素并存储在 object2 中。
我试图参考很多例子,但无法得到正确的实现。
迭代object1的每个元素并添加到object2的语法是正确的,只需这样做
List<List<String>> object1 = Arrays.asList(Arrays.asList("A", "B", "C"),
Arrays.asList("D", "E", "F"),
Arrays.asList("G", "H", "I"));
List<List<String>> object2 = new ArrayList<>();
for(List<String> list : object1){
List<String> copyList = new ArrayList<>();
for(String value : list){
copyList.add(value);
}
object2.add(copyList);
}
虽然您可能需要更新您面临问题的地方,但与此同时,这是我可行的尝试:
List<List<String>> object1 = Arrays.asList(Arrays.asList("A", "B", "C"), Arrays.asList("D", "E", "F"),
Arrays.asList("G", "H", "I"));
List<List<String>> object2 = new ArrayList<>();
for (int i = 0; i < object1.size(); i++) {
List<String> ls = new ArrayList<String>();
for (int j = 0; j < object1.get(i).size(); j++) {
ls.add(object1.get(i).get(j));
}
object2.add(ls);
}
System.out.println(object2);
Output:
[[A, B, C], [D, E, F], [G, H, I]]
如果您真的不需要显式使用嵌套循环,则可以使用
toList()
收集其元素以分离列表。所以你的代码看起来像:
List<List<String>> object2 = new ArrayList<>();
for (List<String> row : object1){
object2.add(new ArrayList<>(row)); //adds separate list containing copy of *row* elements
}
或使用流:
List<List<String>> object2 = object1.stream()
.map(row -> row.stream().toList())//maps to copy of row
.toList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.