Java中Map、List、Set操作

Java中Map、List、Set操作

Map操作

使用compute方法动态更新键值对

compute方法可以用来根据当前的键值对计算新的值。

java 复制代码
Map<String, Integer> counts = new HashMap<>();
counts.put("apple", 1);
counts.put("banana", 1);
System.out.println(counts);

counts.compute("apple", (key, val) -> val == null ? 1 : val + 1);
System.out.println(counts);

第一次输出

复制代码
{banana=1, apple=1}

第二次输出

复制代码
{banana=1, apple=2}

使用merge方法合并两个Map

merge方法可以用来合并两个Map,如果键冲突,可以指定如何合并值。

java 复制代码
Map<String, Integer> map1 = new HashMap<>();
map1.put("apple", 1);
Map<String, Integer> map2 = new HashMap<>();
map2.put("banana", 2);

map1.merge("apple", map2.getOrDefault("apple", 0), Integer::sum);
// map1现在是 {"apple"=1, "banana"=2}

forEach方法:遍历Map中的键值对。

java 复制代码
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.forEach((key, value) -> System.out.println(key + " = " + value));

computeIfAbsent方法:如果键不存在,则计算键的值并将其添加到Map中。

java 复制代码
Map<String, List<String>> map = new HashMap<>();
map.computeIfAbsent("key", k -> new ArrayList<>()).add("value");

putIfAbsent方法:如果键不存在,则添加键值对。

java 复制代码
Map<String, String> map = new HashMap<>();
map.putIfAbsent("key", "default value");

List的操作

使用replaceAll方法批量替换元素

replaceAll方法可以用来替换列表中的所有元素。

java 复制代码
List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
list.replaceAll(s -> s.toUpperCase());
// list现在是 ["A", "B", "C"]

使用removeIf方法根据条件移除元素

removeIf方法可以用来根据条件移除列表中的元素。

java 复制代码
List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c", "d"));
list.removeIf(s -> s.startsWith("a"));
// list现在是 ["b", "c", "d"]

sort方法:对List进行排序。

java 复制代码
List<Integer> list = new ArrayList<>(Arrays.asList(5, 3, 1, 4, 2));
list.sort(Integer::compareTo);

subList方法:获取List的一部分。

java 复制代码
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> sublist = list.subList(1, 4); // [2, 3, 4]

Set的操作

使用removeAll方法移除与另一个集合的交集

removeAll方法可以用来移除Set中与另一个集合的交集元素。

java 复制代码
Set<String> set1 = new HashSet<>(Arrays.asList("a", "b", "c"));
Set<String> set2 = new HashSet<>(Arrays.asList("b", "c", "d"));

set1.removeAll(set2);
// set1现在是 ["a"]

使用retainAll方法保留与另一个集合的交集

retainAll方法可以用来保留Set中与另一个集合的交集元素。

java 复制代码
Set<String> set1 = new HashSet<>(Arrays.asList("a", "b", "c"));
Set<String> set2 = new HashSet<>(Arrays.asList("b", "c", "d"));

set1.retainAll(set2);
// set1现在是 ["b", "c"]

stream方法:将Set转换为Stream进行流式处理。

java 复制代码
Set<String> set = new HashSet<>(Arrays.asList("a", "b", "c"));
set.stream().forEach(System.out::println);

removeIf方法:根据给定的条件移除Set中的元素。

java 复制代码
Set<String> set = new HashSet<>(Arrays.asList("a", "b", "c", "d"));
set.removeIf(s -> s.startsWith("a"));
相关推荐
小林学习编程1 小时前
SpringBoot校园失物招领信息平台
java·spring boot·后端
撸码到无法自拔1 小时前
docker常见命令
java·spring cloud·docker·容器·eureka
heart000_12 小时前
IDEA 插件推荐:提升编程效率
java·ide·intellij-idea
IT专业服务商2 小时前
联想 SR550 服务器,配置 RAID 5教程!
运维·服务器·windows·microsoft·硬件架构
海尔辛2 小时前
学习黑客5 分钟小白弄懂Windows Desktop GUI
windows·学习
ŧ榕树先生2 小时前
查看jdk是否安装并且配置成功?(Android studio安装前的准备)
java·jdk
未来的JAVA高级开发工程师2 小时前
适配器模式
java
gushansanren2 小时前
基于WSL用MSVC编译ffmpeg7.1
windows·ffmpeg
LUCIAZZZ2 小时前
JVM之内存管理(一)
java·jvm·spring·操作系统·springboot
D_aniel_3 小时前
排序算法-计数排序
java·排序算法·计数排序