JAVA8新特性常用的方法简单梳理

1. Stream的filter方法实现对集合元素的过滤

List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
Stream<Integer> integerStream = list.stream().filter(a -> a > 3);
List<Integer> list1 = integerStream.collect(Collectors.toList());
System.out.println(list1.toString());
//输出结果:[4, 5, 6, 7, 8, 9, 10]
List<PersonTest> list = new ArrayList<>();
list.add(new PersonTest("小魏",20,"女"));
list.add(new PersonTest("小王",30,"男"));
list.add(new PersonTest("小刚",15,"男"));

Stream<PersonTest> filterStream = list.stream().filter(person -> person.getSex().equals("男"));
List<PersonTest> list1 = filterStream.collect(Collectors.toList());
list1.forEach(System.out::println);

2. stream的map方法对list中的元素进行操作,可以是数据类型转换,可以是计算等

		List<Integer> list = Arrays.asList(1,2,3,4,5);
        Stream<Long> stringStream = list.stream().map(x -> x.longValue());
        stringStream.collect(Collectors.toList()).forEach(System.out::println);
        Stream<Integer> stringStream2 = list.stream().map(x -> x * 2);
        stringStream2.collect(Collectors.toList()).forEach(System.out::println);

3.Stream.collect()方法

  1. 流转字符串:Collectors.joining();
List<Integer> list = Arrays.asList(1,2,3,4,5);
 String collect = list.stream().map(x -> x.toString()).collect(Collectors.joining("-", "pre", "suf"));  
 //不带参数,表示拼接字符串没有任何拼接符号:12345
 //带一个参数,表示拼接字符串用的连接符:1-2-3-4-5
 //带3个参数,表示连接的字符串,前缀和后缀:pre1-2-3-4-5suf
  1. 流转集合:Collectors.toList()
List<Integer> list = Arrays.asList(1,2,3,4,5);
list.stream().filter(x -> x >2).collect(Collectors.toList());
  1. 流转map: Collectors.toMap()
#使用lambda表达式设置key和value
  Map<String, String> collect = list.stream().map(x -> x.toString()).collect(Collectors.toMap(x->x + "a", String::toString,(s1,s2) -> s1));
  #使用对象的属性来设置key和value
  Map<String, Integer> map = students.stream().collect(Collectors.toMap(Student::getName, Student::getAge));
  Map<String, String> collect = list.stream().map(x -> x.toString()).collect(Collectors.toMap(String::toString, String::toString));

// 第一个参数为key.
// 第二为value;
// 第三个表示前后的key是相同,到是覆盖还是不覆盖,(s1,s2)-> s1表示不覆盖,(s1,s2)-> s2 表示覆盖。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值