gpt4 book ai didi

java - 如何通过匹配内部数组中的值来对 arraylist 中的数组进行分组?

转载 作者:行者123 更新时间:2023-12-02 09:38:04 26 4
gpt4 key购买 nike

我有一个ArrayList,其中包含几个String[]。我想循环遍历 ArrayList 并对包含匹配值的内部 String[] 进行分组。在本例中,我专门查看 String[] 中的第二个值(例如“CompanyA”)。

我很难理解最好的逻辑模式是什么以及如何实现它。非常感谢任何帮助。

List<String[]> attArrayList = new ArrayList<String[]>();

String[] entry1 = { "EventOne", "CompanyA", "Matthew" };
String[] entry2= { "EventOne", "CompanyA", "Mary" };
String[] entry3 = { "EventOne", "CompanyB", "Bates" };
String[] entry4 = { "EventOne", "CompanyC", "Carson" };
attArrayList.add(entry1);
attArrayList.add(entry2);
attArrayList.add(entry3);
attArrayList.add(entry4);

for (int i = 0; i < attArrayList.size(); i++) {
// ...
}

我想要的结果是这样的:

[[EventOne, CompanyA, Matthew], [EventOne, CompanyA, Mary]], [EventOne, CompanyB, Bates], [EventOne, CompanyC, Carson]

最佳答案

Map<String, ArrayList<String[]>> map = new TreeMap<>();
for (String[] strs : attArrayList) {
if (!map.containsKey(strs[1])) {
ArrayList<String[]> list = new ArrayList<>();
list.add(strs);
map.put(strs[1], list);
} else {
map.get(strs[1]).add(strs);
map.put(strs[1], map.get(strs[1]));
}
}
for (String[] strs : map.get("CompanyA")) {
System.out.println(Arrays.toString(strs));
}

你可以试试这个。我认为它比使用stream更容易理解(虽然stream的代码更少)。

关于java - 如何通过匹配内部数组中的值来对 arraylist 中的数组进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57334735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com