@Data
@AllArgsConstructor
public class Trader { private final String name;
private final String city;
}
 @Data
@AllArgsConstructor
public class Transaction { private final Trader trader;
private final int year;
private final int value;
}
public class TraderTransactionTest {

     List<Transaction> transactions = null;
// List<Trader> traders = null; @Before
public void beforeTest(){
Trader zhangsan = new Trader("zhangsan", "shanghai");
Trader lisi = new Trader("lisi", "beijing");
Trader wangwu = new Trader("wangwu", "shanghai");
Trader zhaoliu = new Trader("zhaoliu", "shanghai"); // traders = Arrays.asList(zhangsan, lisi, wangwu, zhaoliu); transactions = Arrays.asList(
new Transaction(zhaoliu, 2011, 300),
new Transaction(zhangsan, 2012, 1000),
new Transaction(zhangsan, 2011, 400),
new Transaction(lisi, 2012, 710),
new Transaction(lisi, 2012, 700),
new Transaction(wangwu, 2012, 950)
);
} //2011年发生的交易,按照交易额排序
@org.junit.Test
public void test1(){
List<Transaction> l = transactions.stream().filter(t -> t.getYear() == 2011)
.sorted(Comparator.comparing(Transaction::getValue))
.collect(Collectors.toList());
System.out.println(l);
} //交易员都在哪些不同的城市工作过
@org.junit.Test
public void test2(){
// traders.stream().map(Trader::getCity).distinct().forEach(s -> System.out.print(s + "\t"));
transactions.stream().map(t -> t.getTrader().getCity()).distinct().forEach(s -> System.out.print(s + "\t"));
} //找出来自上海的交易员,按照名字排序
@org.junit.Test
public void test3(){
// List<Trader> l = traders.stream()
// .filter(t -> "shanghai".equals(t.getCity()))
// .sorted(Comparator.comparing(Trader::getName))
// .collect(Collectors.toList());
List<Trader> l = transactions.stream().map(Transaction::getTrader)
.filter(t -> "shanghai".equals(t.getCity()))
.distinct()
.sorted(Comparator.comparing(Trader::getName))
.collect(Collectors.toList());
System.out.println(l);
} //返回交易员姓名字符串,并按照字母顺排序
@org.junit.Test
public void test4(){
String traderStr = transactions.stream().map(t -> t.getTrader().getName())
.distinct()
.sorted()
.reduce("", (n1, n2) -> n1 + n2); traderStr = transactions.stream().map(t -> t.getTrader().getName())
.distinct()
.sorted()
.collect(Collectors.joining()); System.out.println(traderStr);
} //有没有交易员在上海工作
@org.junit.Test
public void test5(){
transactions.stream().anyMatch(t -> t.getTrader().getCity().equals("shanghai"));
} //生活在上海的交易员的所有交易额
@org.junit.Test
public void test6(){
transactions.stream().filter(t -> "shanghai".equals(t.getTrader().getCity()))
.map(Transaction::getValue)
.forEach(v -> System.out.print(v + "\t"));
} //所有交易中,最高的交易额是多少
@org.junit.Test
public void test7(){
Optional<Integer> o = transactions.stream().map(Transaction::getValue).reduce(Integer::max);
System.out.println(o);
} //找到交易额最小的交易
@org.junit.Test
public void test8(){
Optional<Integer> o = transactions.stream().map(Transaction::getValue).reduce(Integer::min);
System.out.println(o); Optional<Transaction> ot = transactions.stream().reduce((t1, t2) -> t1.getValue() < t2.getValue() ? t1 : t2);
System.out.println(ot); ot = transactions.stream().min(Comparator.comparing(Transaction::getValue));
System.out.println(ot); } }

像写SQL语句一样写Java代码的更多相关文章

  1. 三种执行SQL语句的的JAVA代码

    问题描述: 连接数据库,执行SQL语句是必不可少的,下面给出了三种执行不通SQL语句的方法. 1.简单的Statement执行SQL语句.有SQL注入,一般不使用. public static voi ...

  2. 关于在Java代码中写Sql语句需要注意的问题

    最近做程序,时不时需要自己去手动将sql语句直接写入到Java代码中,写入sql语句时,需要注意几个小问题. 先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错. String st ...

  3. 写sql语句连接的时候注意的一个小细节

    我在写权限的查询的时候,用到了sql语句的链接写一下出错的时候的代码 $sqlpid="select auth_name from sw_auth where auth_level=0&qu ...

  4. dedecms清空所有文章怎么操作?sql语句如何写?

    小C新建了一个站,确切的说是复制,出于seo考虑,决定清空所有文章,那么dedecms清空所有文章怎么操作?sql语句如何写呢?特别提醒:修改之前一定要先做好备份,以防万一!下面的语句在迫不得已的情况 ...

  5. 《你还在写sql语句吗?》人生苦短,进入MybatisPlus的丝滑体验

    一.发展历程 依稀记得大学期间,类中写sql语句的日子,一个sql语句占据了大部分时间,到后来hibernate的出现算是解决了这一痛点.工作 后,我们又接触到了mybatis这样的框架,瞬间感觉这个 ...

  6. 写sql语句分别按日,星期,月,季度,年统计

    --写sql语句分别按日,星期,月,季度,年统计销售额 --按日 ' group by day([date]) --按周quarter ' group by datename(week,[date]) ...

  7. (摘至)程序员老鸟写sql语句的经验之谈

    做管理系统的,无论是bs结构的还是cs结构的,都不可避免的涉及到数据库表结构的设计,sql语句的编写等.因此在开发系统的时候,表结构设计是否合理,sql语句是否标准,写出的sql性能是否优化往往会成为 ...

  8. 程序员老鸟写sql语句的经验之谈

    做管理系统的,无论是bs结构的还是cs结构的,都不可避免的涉及到数据库表结构的设计,sql语句的编写等.因此在开发系统的时候,表结构设计是否合理,sql语句是否标准,写出的sql性能是否优化往往会成为 ...

  9. 写sql语句注意事项

    做管理系统的,无论是bs结构的还是cs结构的,都不可避免的涉及到数据库表结构的设计,sql语句的编写等.因此在开发系统的时候,表结构设计是否合理,sql语句是否标准,写出的sql性能是否优化往往会成为 ...

随机推荐

  1. 灰度图像--图像分割 Sobel算子,Prewitt算子和Scharr算子平滑能力比较

    学习DIP第47天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https://g ...

  2. Android有进度条异步任务下载图片

    首先在AndroidMainifest中添加上网权限 ? 1 <uses-permission android:name="android.permission.INTERNET&qu ...

  3. Android学习_数据持久化

    数据持久化:将内存中的瞬时数据存储到设备中 1. 文件存储 存储一些简单的文本数据或二进制数据. 核心:Context类提供的openFileOutput()和openFileInput()方法,然后 ...

  4. zookeeper系列(五)zookeeper在大型分布式系统中的应用

    作者:leesf    掌控之中,才会成功:掌控之外,注定失败. 出处:http://www.cnblogs.com/leesf456/p/6063694.html 尊重原创感谢博主公开这么好的博文, ...

  5. HearthBuddy卡牌无法识别

    界面上无法识别,提示是 [Unidentified card ID :DAL_010][Unidentified card ID :DAL_415] Unidentified card ID :HER ...

  6. Python关于%matplotlib inline

    Python关于%matplotlib inline %matplotlib inline 是一个魔法函数(Magic Functions).官方给出的定义是:IPython有一组预先定义好的所谓的魔 ...

  7. Vue Router实现页面跳转拦截

    场景: 某些页面需要登录之后才可以访问,在页面跳转前做处理,如果要访问的页面A需要登录,则强制调到登录页,并且记录要访问的页面A的链接,在登录成功后自动跳转到页面A 1.在router下的index. ...

  8. html5-meta标签和搜索引擎

    emta标签的组成: meta标签分两大部分:HTTP-EQUIV  和  NAME  变量. HTTP-EQUIV:HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助 ...

  9. leetcode 100. Same Tree、101. Symmetric Tree

    100. Same Tree class Solution { public: bool isSameTree(TreeNode* p, TreeNode* q) { if(p == NULL &am ...

  10. WPF Visifire 图表控件

    Visifire WPF 图表控件 破解 可能用WPF生成过图表的开发人员都知道,WPF虽然本身的绘图能力强大,但如果每种图表都自己去实现一次的话可能工作量就大了, 尤其是在开发时间比较紧的情况下.这 ...