java8新特性

 1、list<Dto>转List<String>

List<String> openIdList = list.stream().map(o -> o.getOpenId()).collect(Collectors.toList());

 2、List转map

Map<String, SearchActivityCustomerResultDto> userMap =
userList
.stream()
.collect(Collectors.toMap(SearchActivityCustomerResultDto::getOpenid, a -> a));

3、groupingBy分组

Map<Integer, List<Apple>> groupBy =
appleList.stream().collect(Collectors.groupingBy(Apple::getId));

4、filter过滤出符合条件的数据

List<Apple> filterList =
appleList.stream().filter(a -> a.getName().equals("香蕉")).collect(Collectors.toList());

5、排序

//1.jdk8 lambda排序,带参数类型,倒序

appleList.sort(( Apple ord1, Apple ord2) -> ord2.getId().compareTo(ord1.getId()));

//2.jdk8 lambda排序,不带参数类型,倒序

appleList.sort(( ord1, ord2) -> ord2.getId().compareTo(ord1.getId()));

//3.jdk8 升序排序,Comparator提供的静态方法

Collections.sort(appleList, Comparator.comparing(Apple::getId));

//4.jdk8 降序排序,Comparator提供的静态方法

Collections.sort(appleList, Comparator.comparing(Apple::getId).reversed());

//5.jdk8 组合排序,Comparator提供的静态方法,先按Id排序,Id相同的按money排序

Collections.sort(appleList, Comparator.comparing(Apple::getId).thenComparing(Apple::getMoney).reversed());

6、for循环

appleList.stream().forEach(str -> System.out.println(str.getId()+"/" + str.getMoney()));

7、分页

appleList.subList((page - 1) * rows, rows * page);
List<Apple> pagingData = appleList.stream().limit(rows).collect(Collectors.toList());

8、去重

List<Apple> result = appleList.stream().distinct().collect(toList());

//截取前2个元素

List<Apple> pagingData = appleList.stream().limit(2).collect(toList());



版权声明:著作权归作者所有。

相关推荐

JAVA三大特性之多态

1、介绍 多态是同一个行为具有多个不同表现形式或形态的能力 多态就是同一个接口,使用不同的实例而执行不同操作 多态性是对象多种表现形式的体现。 2、多态存在的必要条件 继承 子类重写父类方法 父类引用指向子类对象 比如:Parent parent = new Child();  3、代码示例 ①、基于继承实现的多态public class {

Java 14新特性:instanceof的模式匹配

Java中instanceof是用来判断对象的类型是否是目标类型。如果是返回true,不是返回false。在Java 14之前,示例如下:if (obj instanceof String) { String str = (String) obj; .. str.contains(..) ..}else{ str = ....}obj instanceof String已经为

Java14新特性:Switch表达式

Java 14正式发布switch表达式特性。在之前的两个 Java 版本Java12,Java13,switch特性只是预览版。新的switch表达式有助于避免一些bug,因为它的表达和组合方式更容易编写。switch新的表达式有两个特点:支持箭头表达式返回。支持yied和return返回值。Java 14之前switch语法:switch (day) { case MONDAY:

Android使用Kotlin新特性Parcelize序列化对象

Android对对象序列化主要有两种方式:Serializable和Parcelable。Serializable实际是使用Java的放射机制对对象做序列化和反序列化,其性能远低于使用Parcelable。但是使用Java写的Parcelable有点繁琐,需要我们实现Parcelable接口,手写很多模板代码。Java版Parcelable示例public class User

Java8使用Lambda把List转换为Map

使用Java8的Collections可以很简便地把List转换为Map以User为例List里的User名字唯一Map<String, User> result =     users.stream().collect(Collectors.toMap(User::getName,   &nbs