使用 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));
        }
    }
}

代码说明

  1. 首先,我们创建了一个名为 namesList,其中包含了一些重复的姓名。
  2. 接着,我们创建了一个名为 groupedNamesMap,它将用于存储分组后的结果。Map 的键是姓名,值是包含相同姓名的 List
  3. 然后,我们遍历 names 列表,并对每个姓名进行以下操作:
    • 检查 groupedNames 是否已经包含当前姓名。
    • 如果已经包含,则将当前姓名添加到对应的 List 中。
    • 如果不包含,则创建一个新的 List,并将当前姓名添加到其中,并将该 List 作为值与姓名一起放入 groupedNames 中。
  4. 最后,我们遍历 groupedNames 并打印分组结果。

输出结果

运行上述代码将输出以下结果:

Bob: [Bob]
Jane: [Jane, Jane]
John: [John, John]

总结

通过使用 Map 来分组 List 中的元素,我们可以方便地将重复的元素进行归类,并根据需要进行进一步的处理。这是一种简单且高效的实现方法,可以应用于各种场景。

Java List 分组:使用 Map 实现高效分组

原文地址: https://www.cveoy.top/t/topic/eRW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录