@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. Qbxt 模拟题 day2(am) T2 jian

    [问题描述] 有N个数,随机选择一段区间,如果这段区间的所有数的平均值在[L,R]中则你比较厉害.求你比较厉害的概率. [输入格式] 第一行有三个数N, l, r,含义如上描述. 接下来一行有N个数代 ...

  2. python isinstance函数

    isinstance是Python的一个内建函数 语法: 1 isinstance(object,classinfo) 如果参数object是classinfo的实例,或者object是classin ...

  3. Windows下Yarn安装与使用

    参考博客 1.安装yarn 方法一:使用安装包安装 官方下载安装包,https://yarnpkg.com/zh-Hans/docs/install,安装完毕后,一定要配置环境变量. 方法二:使用np ...

  4. JVM-GC算法(三)-分代收集算法

    对象分类 上次已经说过,分代收集算法是针对对象的不同特性,而使用合适的算法,这里面并没有实际上的新算法产生.与其说分代收集算法是第四个算法,不如说它是对前三个算法的实际应用.  首先我们来探讨一下对象 ...

  5. TCP输出 之 tcp_transmit_skb

    概述 tcp_transmit_skb的作用是复制或者拷贝skb,构造skb中的tcp首部,并将调用网络层的发送函数发送skb:在发送前,首先需要克隆或者复制skb,因为在成功发送到网络设备之后,sk ...

  6. lockfree buffer test

    性能测试(3): 对无锁队列boost::lockfree::queue和moodycamel::ConcurrentQueue做一个性能对比测试     版权声明:本文为博主zieckey原创文章, ...

  7. Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name) 中文显示乱码

    如果file.Name为中文则乱码.解决办法是方法1:response.setHeader("Content-Disposition", "attachment; fil ...

  8. [转]Cookie详解

    从事 Web 开发已有近17个月:在学以致用的工作学习里,对于不怎么使用的部分,多少有些雾里探花的窘迫感-差不多是了解一二,然而又非真切的明晰:这就使得再用的时候,总要去再搜索一番:如此颇为难受,倒不 ...

  9. JAVA记事本的图形用户界面应用程序

    JAVA记事本的图形用户界面应用程序 整体分析: 代码实现: import java.awt.EventQueue; import java.awt.event.ActionEvent; import ...

  10. asp.net core mvc View Component 应用

    ViewComponent 1.View 组件介绍 在ASP.NET CORE MVC中,View组件有点类似于partial views,但是他们更强大,View组件不能使用model bindin ...