博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
StreamAPI 小练习
阅读量:5301 次
发布时间:2019-06-14

本文共 4458 字,大约阅读时间需要 14 分钟。

/** * StreamAPI的小练习 */public class StreamAPIExercise {    private List
transactions; @Before public void before() { Trader yan = new Trader("Yan", "Cambridge"); Trader zh = new Trader("ZH", "Milan"); Trader rose = new Trader("Rose", "Cambridge"); Trader lee = new Trader("Lee", "Cambridge"); transactions = Arrays.asList(new Transaction(yan, 2011, 300), new Transaction(zh, 2012, 1000), new Transaction(zh, 2011, 400), new Transaction(rose, 2012, 710), new Transaction(rose, 2012, 700), new Transaction(lee, 2012, 950) ); } //给定一组数字的列表,返回由每个数字平方构成的列表 @Test public void test1() { Integer[] nums = new Integer[]{1, 2, 3, 4, 5}; Arrays.stream(nums).map((e) -> e * e).forEach(System.out::println); } //使用map reduce 方法数出流中有多少个Employee @Test public void test2() { Optional
sum = employees.stream().map(e -> 1).reduce(Integer::sum); System.out.println(sum.get()); } List
employees = Arrays.asList( new Employee("Yan", 18, '男', 0), new Employee("Mike", 20, '女', 5000), new Employee("Lee", 18, '女', 8000), new Employee("Rose", 22, '男', 9000), new Employee("Sk", 30, '男', 11000) ); //找出2011年所有交易 并按照交易额排序(低->高) @Test public void test3() { transactions.stream().filter((e) -> e.getYear() == 2011) //.sorted((t1, t2) -> Integer.compare(t1.getValue(), t2.getValue())) .sorted(new Comparator
() { @Override public int compare(Transaction o1, Transaction o2) { return Integer.compare(o1.getValue(), o2.getValue()); } }) .forEach(System.out::println); } //交易员都在哪些不同城市工作过 @Test public void test4() { transactions.stream().map(t -> t.getTrader().getCity()).distinct().forEach(System.out::println); } //查找出来自剑桥的交易员,并按姓名排序 @Test public void test5() { transactions.stream().filter(t -> t.getTrader().getCity() == "Cambridge") .map(t -> t.getTrader().getName())// .sorted((t1, t2) -> t1.compareTo(t2)) .distinct() .sorted(new Comparator
() { @Override public int compare(String o1, String o2) { return o1.compareTo(o2); } }) .forEach(System.out::println); } //返回所有交易员姓名的字符串,并按字母顺序排序 @Test public void test6() { transactions.stream().map(t->t.getTrader().getName()) .sorted().forEach(System.out::println); System.out.println("------------------------------------------------"); //姓名连成一个字符串 System.out.println(transactions.stream().map(t -> t.getTrader().getName()) .sorted().reduce("", String::concat)); System.out.println("------------------------------------------------"); //姓名连成一个字符串 并按照字母排序 并且忽略大小写 //思路:1.取出集合中每个姓名 2.对每个姓名 取出所有字符 存入list集合 3.list.stream 将stream sorted排序 transactions.stream().map(t -> t.getTrader().getName()) .flatMap(StreamAPIExercise::filterCharacter) .sorted((o1, o2) -> o1.compareToIgnoreCase(o2)) .forEach(System.out::print); } public static Stream
filterCharacter(String str) { List
list = new ArrayList<>(); for (Character ch : str.toCharArray()) { list.add(ch.toString()); } return list.stream(); } //有没有交易员在米兰工作 @Test public void test7() { boolean bl = transactions.stream().anyMatch(t -> t.getTrader().getCity() == "Milan"); } //打印剑桥的交易员所有交易额 @Test public void test8() { Optional
sum = transactions.stream().filter(t -> t.getTrader().getCity().equals("Cambridge")) .map(t -> t.getValue()) .reduce((x,y)->Integer.sum(x,y)); // .reduce(Integer::sum); System.out.println(sum); } //所有交易中最高的交易额是多少 @Test public void test9() { Optional
max = transactions.stream().map(t -> t.getValue()).max((x,y)->Integer.compare(x,y)); System.out.println(max.get()); } //找出最小交易 @Test public void test10() { Optional
min = transactions.stream().min((x, y) -> Integer.compare(x.getValue(), y.getValue())); System.out.println(min.get()); }}

 

转载于:https://www.cnblogs.com/MadYanYan/p/9942344.html

你可能感兴趣的文章
查看oracle数据库的连接数以及用户
查看>>
【数据结构】栈结构操作示例
查看>>
中建项目环境迁移说明
查看>>
三.野指针和free
查看>>
activemq5.14+zookeeper3.4.9实现高可用
查看>>
TCP/IP详解学习笔记(3)IP协议ARP协议和RARP协议
查看>>
简单【用户输入验证】
查看>>
python tkinter GUI绘制,以及点击更新显示图片
查看>>
HDU4405--Aeroplane chess(概率dp)
查看>>
CS0103: The name ‘Scripts’ does not exist in the current context解决方法
查看>>
20130330java基础学习笔记-语句_for循环嵌套练习2
查看>>
Spring面试题
查看>>
窥视SP2010--第一章节--SP2010开发者路线图
查看>>
MVC,MVP 和 MVVM 的图示,区别
查看>>
C语言栈的实现
查看>>
代码为什么需要重构
查看>>
TC SRM 593 DIV1 250
查看>>
SRM 628 DIV2
查看>>
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
查看>>
Python-S9-Day127-Scrapy爬虫框架2
查看>>