Java List 分组:使用 Map 实现高效分组
使用 Java Map 对 List 进行分组
在 Java 中,可以使用 Map 来对列表进行高效分组。这篇文章将带你了解如何利用 Map 对列表中的元素进行分组,并提供一个简单的代码示例。
示例代码
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ListGroupingExample {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("John");
names.add("Jane");
names.add("John");
names.add("Bob");
names.add("Jane");
Map<String, List<String>> groupedNames = new HashMap<>();
for (String name : names) {
if (groupedNames.containsKey(name)) {
groupedNames.get(name).add(name);
} else {
List<String> group = new ArrayList<>();
group.add(name);
groupedNames.put(name, group);
}
}
for (String name : groupedNames.keySet()) {
System.out.println(name + ": " + groupedNames.get(name));
}
}
}
代码说明
- 首先,我们创建了一个名为
names的List,其中包含了一些重复的姓名。 - 接着,我们创建了一个名为
groupedNames的Map,它将用于存储分组后的结果。Map的键是姓名,值是包含相同姓名的List。 - 然后,我们遍历
names列表,并对每个姓名进行以下操作:- 检查
groupedNames是否已经包含当前姓名。 - 如果已经包含,则将当前姓名添加到对应的
List中。 - 如果不包含,则创建一个新的
List,并将当前姓名添加到其中,并将该List作为值与姓名一起放入groupedNames中。
- 检查
- 最后,我们遍历
groupedNames并打印分组结果。
输出结果
运行上述代码将输出以下结果:
Bob: [Bob]
Jane: [Jane, Jane]
John: [John, John]
总结
通过使用 Map 来分组 List 中的元素,我们可以方便地将重复的元素进行归类,并根据需要进行进一步的处理。这是一种简单且高效的实现方法,可以应用于各种场景。
原文地址: https://www.cveoy.top/t/topic/eRW 著作权归作者所有。请勿转载和采集!