标签:p2 stream List list1 Java8 简记 println EntityDTO Lambda
package com.king.service;
import lombok.Data;
import org.junit.Assert;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description
* @Author HHJ
* @Date 2019-05-15 11:00
*/
@Data
class EntityDTO {
Long id;
String age;
String name;
}
public class LambdaTest {
public static void main(String[] args) {
EntityDTO dto = new EntityDTO();
EntityDTO dto1 = new EntityDTO();
EntityDTO dto2 = new EntityDTO();
EntityDTO dto3 = new EntityDTO();
dto.setId(1L);
dto.setAge("1");
dto1.setId(2L);
dto1.setAge("2");
dto2.setId(3L);
dto2.setAge("3");
dto3.setId(20L);
dto3.setAge("20");
//此时顺序是乱的
List<EntityDTO> list = Arrays.asList(dto, dto2, dto1, dto3);
list.stream().forEach(System.out::println);
System.out.println("================上面是原始数据=====================");
//filter 进行筛选
List<EntityDTO> list1_4 = list
.stream()
.filter(p -> (p.getId() > 1))
.collect(Collectors.toList());
//去重
List<EntityDTO> list1 = list1_4
.stream()
.distinct()
.collect(Collectors.toList());
//返回前 n 个元素
List<EntityDTO> list1_5 = list1_4
.stream()
.limit(3)
.collect(Collectors.toList());
//去除前 n 个元素
List<EntityDTO> list1_6 = list1_4
.stream()
.skip(0)
.collect(Collectors.toList());
//是否存在一个 person 对象的 age 等于 20:
boolean b = list1_6.stream().anyMatch(p -> p.getAge().equals("20"));
Assert.assertTrue(b);
//获取其中一个属性的列表
List<Integer> list2 = list1
.stream()
.map(p -> Integer.valueOf(p.getAge()))
.collect(Collectors.toList());
list2.stream().forEach(System.out::println);
//总和
int sum = list2.stream().reduce(0, Integer::sum);
Assert.assertTrue(sum == 25);
System.out.println("总和:" + sum);
//对原集合进行操作
//reduce 第一个参数 0 代表起始值为 new EntityDTO(), (p1, p2) -> a为上一个值,b 下一个新值
EntityDTO list3 = list1
.stream()
.reduce(new EntityDTO(), (p1, p2) -> {
if (p1.getId() == null) {
return p2;
}
if (p1.getId() < p2.getId()) {
return p2;
}
return p1;
});
System.out.println("Id最大的对象:" + list3.toString());
//对原集合进行排序
List<EntityDTO> list4 = list1.stream()
.sorted((p1, p2) -> (int) (p1.getId() - p2.getId()))
.collect(Collectors.toList());
System.out.println("================下面是原始数据排序后=====================");
list4.stream().forEach(System.out::println);
}
}
标签:p2,stream,List,list1,Java8,简记,println,EntityDTO,Lambda 来源: https://blog.csdn.net/hhj13978064496/article/details/90232605
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。