0%

Collection巧用

本篇是对Java中Collection的一些用法总结。

一、Collections工具类的常用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* 排序操作
*/
reverse(List) // 反转List中元素的顺序
shuffle(List) // 对List集合元素进行随机排序
sort(List) // 根据元素的自然顺序对指定List集合元素按升序
sort(List, Comparator) // 根据指定的Comparator产生的顺序对List集合元素进行排序

/**
* 替换 和 查找操作
*/
swap(List, int i, int j) // 将指定List集合中的 i 处元素 和 j 处元素进行交换
Object max(Collection) // 根据元素的自然顺序,返回给定集合中的最大元素
Object max(Collection, Comparator) // 根据Comparator指定的顺序,返回给集合中的最大元素
Object min(Collection) // 根据元素的自然顺序,返回给定集合中的最小元素
Object min(Collection, Comparator) // 根据Comparator指定的顺序,返回给集合中的最大元素
int frequency(Collection, Object) // 返回指定集合中指定元素的出现次数
void copy(List dest, List src) // 将src中的内容复制到dest中, 注意复制的目标集合的长度必须大于源集合,否则会抛出空指针异常
boolean replaceAll(List list, Object oldVal, Object newVal) // 使用新值替换List对象的所有旧值

二、stream操作

1. map方法
1
2
List<Long> ids = list.stream().map(Item::getId).collect(Collectors.toList());  // 获取每个Item的id合并到一个List中
list.stream().map((item) => {}); // 对每个item进行操作
2. filter方法
1
2
3
4
5
boolean flag = list.stream()
.map(Item::getName)
.filter(condition::contains)
.findAny()
.isPresent(); // 查找是否全部符合条件
3. match方法
1
2
3
boolean flag = list.stream()
.map(Item::getName)
.anyMatch(condition::contains); // 查找是否全部符合条件