我正在尝试了解从2D数组列表中删除/操作某些行的最佳方法。以下是示例列表:
[ [Facebook, Bob, Mark , Yes],
[Facebook, Bob, Priscilla, Yes],
[Tesla, Bill, Elon, Yes],
[Tesla, Bill, Maye, Yes],
[Apple, Jim, Tim, Yes] ]
基本上,我不希望重复,因为我只需要处理list.get(0)和list.get(1),所以我想要的结果列表只给我类似的东西:
[[Facebook, Bob],[Tesla,Bill],[Apple, Jim]]
仅列出了2D ArrayList子级中的前两个唯一元素。
答案 0 :(得分:2)
我将流式传输列表,从每个列表中获取前两个值,获取唯一的结果并收集它们:
List<List<String>> data = /* data */ ;
List<List<String> result =
data.stream()
.map(l -> l.subList(0, 2))
.distinct()
.collect(Collectors.toList());
答案 1 :(得分:1)
如果我正确阅读了您的问题(基于另一个的certian列创建一个数组),您可以做的是编写一个脚本,该脚本循环遍历每个数组并将该点的项目添加到另一个数组中。例如
ArrayList<ArrayList<{ITEM CLASS}>> cpy = new ArrayList<ArrayList<{ITEM CLASS>>();
for(int i = 0; i < List.Length; i++)
{
cpy.Add(new ArrayList<{ITEM CLASS}>);
for(int j = 0; j < List.get(0).Length; j++)
{
if(j == CopyIndex)
{
cpy.get(i).Add(List.get(i).get(j));
}
}
}
或者类似的东西^(我没有进行过错误测试,所以有可能它可能不起作用,但这就是一般概念)