java8 流的使用学习笔记
来源:互联网 发布:linux 启动挂载 编辑:程序博客网 时间:2024/06/01 14:55
中间操作和终端操作
练习题
创建基础数据(实体类在下面)
Trader trader=new Trader("范冰冰","南昌"); Trader trader1=new Trader("金晨","南京"); Trader trader2=new Trader("林志玲","南昌"); Trader trader3=new Trader("江一燕","深圳"); List<Transaction> transactions=Arrays.asList( new Transaction(trader,2011,300), new Transaction(trader1,2012,1000), new Transaction(trader2,2011,400), new Transaction(trader3,2012,710), new Transaction(trader2,2012,700), new Transaction(trader1,2012,950) );
练习题答案
System.out.println("2011年发生的所有交易,并按交易额排序(从低到高):"+transactions.stream().filter(a>a.getYear()==2011).sorted(Comparator.comparing(Transaction::getValue)).collect(Collectors.toList()));System.out.println("交易员都在那些不同的城市工作过:"+transactions.stream().map(o->o.getTrader().getCity()).distinct().collect(Collectors.toList()));System.out.println("所有来自南昌的交易员,并按姓名排序:".map(o->o.getTrader().getName()).distinct().sorted().collect(Collectors.toList())); System.out.println("返回所有交易员的姓名字符串,按首字母顺序排列:".distinct().sorted().reduce("",(a,b)->a+" "+b)); System.out.println("有没有交易员是在南京工作的:".map(Transaction::getTrader).findAny().get().getName());System.out.println("打印生活在南昌的交易员的所有交易额--------------开始"); transactions.stream().filter(a->a.getTrader().getCity().equals("南昌")) .forEach(a-> System.out.println(a.getTrader().getName()+" "+a.getValue())); System.out.println("打印生活在南昌的交易员的所有交易额--------------结束");System.out.println("所有交易中最高的交易额:"+transactions.stream().map(Transaction::getValue).reduce(Integer::max).get()); System.out.println("所有交易中最小的交易额:" +transactions.stream().map(Transaction::getValue).reduce(Integer::min).get());public class Trader {private String name;private String city;public Trader(String name, String city) { this.name = name; this.city = city;}public String getName() { return name;}public void setName(String name) { this.name = name;}public String getCity() { return city;}public void setCity(String city) { this.city = city;}@Overridepublic String toString() { return "交易员:"+this.name+" 来自 "+this.city;}
}
public class Transaction {private Trader trader;private int year;private int value;public Transaction(Trader trader, int year, int value) { this.trader = trader; this.year = year; this.value = value;}public Trader getTrader() { return trader;}public void setTrader(Trader trader) { this.trader = trader;}public int getYear() { return year;}public void setYear(int year) { this.year = year;}public int getValue() { return value;}public void setValue(int value) { this.value = value;}@Overridepublic String toString() { return "{"+this.trader+", "+"时间:"+this.year+", "+" 交易额:"+this.value+"}";}
}
阅读全文
0 0
- java8 流的使用学习笔记
- <JAVA8实战>学习笔记1-流与集合的区别
- java8的新特性学习笔记一
- 【java学习笔记】java8的新特性
- java8 Stream学习笔记
- java8 stream学习笔记
- ConcurrentHashMap学习笔记(Java8)
- JAVA8学习笔记-function
- java8 注解学习笔记
- Java8学习笔记
- JAVA8学习笔记-Function
- Java8 学习笔记之一
- Java8学习笔记
- Java8学习笔记
- Java8学习笔记(3) -- InvokeDynamic指令在Groovy里的使用
- JAVA8新特性学习笔记
- Java8 Stream类学习笔记
- Java8 Streams API 学习笔记
- 记一次内存泄漏以及解决办法
- 解决Itext中文编码问题的方案
- Android view随触碰滑动
- Scaladoc
- Java 多线程结束 的第二种方法 interrupt方法
- java8 流的使用学习笔记
- Sass语法(二)之函数
- libev库的用法
- Servlet中service()方法
- javascript学习笔记--理解apply()、call()、bind() 以及caller、callee属性
- sql之left join、right join、inner join的区别
- GDAL从源码到JAVA应用(Windows环境)
- 线程池原理
- 知识点--实际开发中软引用或弱引用的使用场景