首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Java 8中从多级映射构造列表

在Java 8中,可以使用多级映射来构造列表。多级映射是指在一个映射中嵌套另一个映射,形成多级结构。以下是一个示例代码,演示如何使用多级映射构造列表:

代码语言:txt
复制
import java.util.*;

public class Main {
    public static void main(String[] args) {
        // 创建一个多级映射
        Map<String, Map<String, List<String>>> multiMap = new HashMap<>();

        // 向多级映射中添加数据
        multiMap.computeIfAbsent("Category1", k -> new HashMap<>())
                .computeIfAbsent("Subcategory1", k -> new ArrayList<>())
                .add("Item1");
        multiMap.computeIfAbsent("Category1", k -> new HashMap<>())
                .computeIfAbsent("Subcategory1", k -> new ArrayList<>())
                .add("Item2");
        multiMap.computeIfAbsent("Category1", k -> new HashMap<>())
                .computeIfAbsent("Subcategory2", k -> new ArrayList<>())
                .add("Item3");
        multiMap.computeIfAbsent("Category2", k -> new HashMap<>())
                .computeIfAbsent("Subcategory3", k -> new ArrayList<>())
                .add("Item4");

        // 打印多级映射中的数据
        for (Map.Entry<String, Map<String, List<String>>> categoryEntry : multiMap.entrySet()) {
            String category = categoryEntry.getKey();
            System.out.println("Category: " + category);
            for (Map.Entry<String, List<String>> subcategoryEntry : categoryEntry.getValue().entrySet()) {
                String subcategory = subcategoryEntry.getKey();
                System.out.println("  Subcategory: " + subcategory);
                List<String> items = subcategoryEntry.getValue();
                System.out.println("    Items: " + items);
            }
        }
    }
}

上述代码中,我们创建了一个多级映射 multiMap,它的键是 Category,值是一个嵌套的映射,该嵌套映射的键是 Subcategory,值是一个列表 List。我们使用 computeIfAbsent 方法来确保每个级别的映射都存在,并向列表中添加元素。

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

代码语言:txt
复制
Category: Category1
  Subcategory: Subcategory1
    Items: [Item1, Item2]
  Subcategory: Subcategory2
    Items: [Item3]
Category: Category2
  Subcategory: Subcategory3
    Items: [Item4]

这个例子展示了如何使用多级映射构造列表,其中 Category1Category2 是顶级分类,每个分类下面有对应的子分类和项目列表。你可以根据实际需求,使用多级映射构建更复杂的数据结构。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体产品选择应根据实际需求和情况进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Mybatis学习笔记

单个参数:不会做特殊处理,不管写什么直接映射进去,可用基本类型,也可传pojo 多个参数时:会特殊处理,将多参数处理成map,#{}就是从map集合中获取指定的key,所以获取的时候会有提示 `Parameter 'id' not found. Available parameters are [arg1, arg0, param1, param2]` 默认--即参数可写arg1,arg2,arg3.....,或者param1,param2,param3....,现在的版本已经不用索引了,看版本把 map封装--在传参的时候明确写出参数名字,因为mybatis对参数是做map封装处理的 @param注解--key:@param注解来指定的值,#{指定的key},取出参数值,注解放在接口的方法的形参中 使用TO--来封装传输对象 pojo封装--属性是在pojo内部所有的 注意:如果传参是Collection、List或者数组,则不能用arg1,param1,使用的时候需要#{list[0]}、#{array[0]},因为mybatis会自动封装,多此一举? #{}和${}, #只能用于条件参数位置中的位置,而$能用于拼接任何地方的,比如下面只能用${} SELECT * FROM ${} ;

03

腾讯云 TKE Everywhere 特性发布,用户可在自有基础设施中托管 K8s 服务

孔令飞,腾讯云资深工程师,拥有大规模 Kubernetes 集群、微服务的研发和架构经验,目前专注于云原生混合云领域的基础架构开发。 朱翔,腾讯云容器服务高级产品经理,目前负责云原生混合云产品方案设计工作。 前言 企业数字化转型已经成为企业的核心战略。以云计算为核心的新一代 IT 技术,成为了企业数字化转型的重要支撑,上云成为企业数字化转型的必由之路。企业在上云过程中由于数据安全隐私、资源利旧、业务容灾等原因,在上云时通常会采用混合云的架构,混合云成为企业上云新常态。 近几年,随着云原生技术在云计算市场

02
领券