List和Map的几种初始化方法

目录

List初始化方法

使用ArrayList的构造方法初始化

使用Arrays.asList()方法初始化

使用Collections.addAll()方法初始化:

[使用List.of()方法初始化(Java 9及以上版本)](#使用List.of()方法初始化(Java 9及以上版本))

使用Stream的collect()方法初始化

Map的初始化方法

使用HashMap的构造方法初始化

[使用Collections.singletonMap()方法初始化(创建只包含一个键值对的不可变 Map)](#使用Collections.singletonMap()方法初始化(创建只包含一个键值对的不可变 Map))

[使用双括号初始化(Double Brace Initialization)](#使用双括号初始化(Double Brace Initialization))

[使用Map.of()方法初始化(Java 9及以上版本,创建只包含有限个键值对的不可变 Map)](#使用Map.of()方法初始化(Java 9及以上版本,创建只包含有限个键值对的不可变 Map))

[使用Stream的collect()方法初始化(通过收集器生成 Map)](#使用Stream的collect()方法初始化(通过收集器生成 Map))

[使用Map.entry()方法初始化(Java 9及以上版本,创建只包含一个键值对的不可变 Map)](#使用Map.entry()方法初始化(Java 9及以上版本,创建只包含一个键值对的不可变 Map))


List初始化方法

使用ArrayList的构造方法初始化

java 复制代码
List<String> list1 = new ArrayList<>();

使用Arrays.asList()方法初始化

java 复制代码
List<String> list2 = Arrays.asList("a", "b", "c");

使用Collections.addAll()方法初始化

java 复制代码
List<String> list3 = new ArrayList<>();
Collections.addAll(list3, "a", "b", "c");

使用List.of()方法初始化(Java 9及以上版本)

java 复制代码
List<String> list4 = List.of("a", "b", "c");

使用Stream的collect()方法初始化

java 复制代码
List<String> list5 = Stream.of("a", "b", "c").collect(Collectors.toList());
java 复制代码
List<String> list6 = new ArrayList<>() {{
    add("a");
    add("b");
    add("c");
}};

Map的初始化方法

使用HashMap的构造方法初始化

java 复制代码
Map<String, Integer> map1 = new HashMap<>();

使用Collections.singletonMap()方法初始化(创建只包含一个键值对的不可变 Map)

java 复制代码
Map<String, Integer> map2 = Collections.singletonMap("key", 1);

使用双括号初始化(Double Brace Initialization)

java 复制代码
Map<String, Integer> map3 = new HashMap<>() {{
    put("key1", 1);
    put("key2", 2);
    // 可以连续添加多个键值对
}};

使用Map.of()方法初始化(Java 9及以上版本,创建只包含有限个键值对的不可变 Map)

java 复制代码
Map<String, Integer> map4 = Map.of("key1", 1, "key2", 2);

使用Stream的collect()方法初始化(通过收集器生成 Map)

java 复制代码
Map<String, Integer> map5 = Stream.of(
        new AbstractMap.SimpleEntry<>("key1", 1),
        new AbstractMap.SimpleEntry<>("key2", 2)
).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

使用Map.entry()方法初始化(Java 9及以上版本,创建只包含一个键值对的不可变 Map)

java 复制代码
Map<String, Integer> map6 = Map.entry("key", 1);

以上是一些常见的 Map 集合初始化方法,每种方法都有其适用的场景和特点,根据实际需求选择合适的方法即可。

相关推荐
淡海水3 小时前
08-03-不可变-ImmutableDictionary-TKey-TValue-与ImmutableHashSet-T-持久化哈希树
数据结构·算法·c#·哈希算法·dictionary·immutable
Nil2087 小时前
leetcode 78子集
数据结构·算法·leetcode
喜欢吃燃面7 小时前
深入 C++ STL:从 unordered_set与unordered_map到底层哈希表的原理与实现
数据结构·c++·散列表
en.en..8 小时前
Linux fork() 工作原理
数据结构·算法
不会就选b10 小时前
数据结构之树&&二叉树(二)
数据结构·算法
小刘在重生~12 小时前
Java 集合|Collection、List、ArrayList、LinkedList、泛型、Collections 工具类
java·数据结构·list
我不会起名字32212 小时前
一天一道算法题(29):单调栈
java·数据结构·python·算法·leetcode·golang·单调栈
苦瓜小生12 小时前
【前端】【力扣与手撕】十天带你刷完前端算法与手撕,全是最简单好记的最优解法!day4
前端·数据结构·算法·leetcode·面试
少司府13 小时前
C++进阶:智能指针
开发语言·数据结构·c++·b树·算法·c·智能指针
LuminousCPP14 小时前
数据结构-排序(一):基础排序算法横向对比|冒泡、插入、希尔、堆与双向选择,详解二分 / Knuth 增量
c语言·数据结构·笔记·算法·排序算法