distinct
List<String> list = new ArrayList<>();
Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lucy","李雷");
list.stream()
.distinct() // 过滤重复的数据,相当于 sql中的distinct
.forEach(item -> System.out.println(item));
limit
从流中获取前 n
个数据
List<String> list = new ArrayList<>();
Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李小四");
list.stream()
.limit(3) // 取出前3个数据
.forEach(item -> System.out.println(item));
skip
跳过前 n
个数据,取出后面所有的元素
List<String> list = new ArrayList<>();
Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lili","李小四");
list.stream()
.skip(3) // 跳过前3个数据,取出后面所有的元素
.forEach(item -> System.out.println(item));
skip和limit 联合使用
集合中有 "李雷", "lucy", "lili","李小四"
,打印出 lucy、lili
方式一
List<String> list = new ArrayList<>();
Collections.addAll(list,"李雷", "lucy", "lili","李小四");
list.stream()
.skip(1) // 跳过前1个数据,取出后面所有的元素,即:"lucy", "lili","李小四"
.limit(2) // 取出前2个数据,即:"lucy", "lili"
.forEach(item -> System.out.println(item));
方式二
List<String> list = new ArrayList<>();
Collections.addAll(list,"李雷", "lucy", "lili","李小四");
list.stream()
.limit(3) // 取出前3个数据,即:"李雷", "lucy", "lili"
.skip(1) // 跳过前1个数据,取出后面所有的元素,即:"lucy", "lili"
.forEach(item -> System.out.println(item));
sorted
按照指定规则排序
例子 - 默认从小到大
List<Integer> list = new ArrayList<>();
Collections.addAll(list,10,15,2,4,8);
list.stream()
.sorted()
.forEach(item -> System.out.println(item));
}
例子 - 从大到小
List<Integer> list = new ArrayList<>();
Collections.addAll(list,10,15,2,4,8);
list.stream()
.sorted( (item2,item1) -> item1 - item2) // 倒序
.forEach(item -> System.out.println(item));