像写SQL语句一样写Java代码
@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代码的更多相关文章
- 三种执行SQL语句的的JAVA代码
问题描述: 连接数据库,执行SQL语句是必不可少的,下面给出了三种执行不通SQL语句的方法. 1.简单的Statement执行SQL语句.有SQL注入,一般不使用. public static voi ...
- 关于在Java代码中写Sql语句需要注意的问题
最近做程序,时不时需要自己去手动将sql语句直接写入到Java代码中,写入sql语句时,需要注意几个小问题. 先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错. String st ...
- 写sql语句连接的时候注意的一个小细节
我在写权限的查询的时候,用到了sql语句的链接写一下出错的时候的代码 $sqlpid="select auth_name from sw_auth where auth_level=0&qu ...
- dedecms清空所有文章怎么操作?sql语句如何写?
小C新建了一个站,确切的说是复制,出于seo考虑,决定清空所有文章,那么dedecms清空所有文章怎么操作?sql语句如何写呢?特别提醒:修改之前一定要先做好备份,以防万一!下面的语句在迫不得已的情况 ...
- 《你还在写sql语句吗?》人生苦短,进入MybatisPlus的丝滑体验
一.发展历程 依稀记得大学期间,类中写sql语句的日子,一个sql语句占据了大部分时间,到后来hibernate的出现算是解决了这一痛点.工作 后,我们又接触到了mybatis这样的框架,瞬间感觉这个 ...
- 写sql语句分别按日,星期,月,季度,年统计
--写sql语句分别按日,星期,月,季度,年统计销售额 --按日 ' group by day([date]) --按周quarter ' group by datename(week,[date]) ...
- (摘至)程序员老鸟写sql语句的经验之谈
做管理系统的,无论是bs结构的还是cs结构的,都不可避免的涉及到数据库表结构的设计,sql语句的编写等.因此在开发系统的时候,表结构设计是否合理,sql语句是否标准,写出的sql性能是否优化往往会成为 ...
- 程序员老鸟写sql语句的经验之谈
做管理系统的,无论是bs结构的还是cs结构的,都不可避免的涉及到数据库表结构的设计,sql语句的编写等.因此在开发系统的时候,表结构设计是否合理,sql语句是否标准,写出的sql性能是否优化往往会成为 ...
- 写sql语句注意事项
做管理系统的,无论是bs结构的还是cs结构的,都不可避免的涉及到数据库表结构的设计,sql语句的编写等.因此在开发系统的时候,表结构设计是否合理,sql语句是否标准,写出的sql性能是否优化往往会成为 ...
随机推荐
- ASCII和UTF-8
造冰箱的熊猫@cnblogs 2018/12/11 用了这么久的UTF-8,第一次了解了点UTF-8的细节 UTF-8[1]属于变长度编码.一个UTF-8字符的编码长度为1~4个字节. 1)长度为1个 ...
- NOI2019 游记
day-1 广二真好看QAQ (要是我也能在这里读书就好了) 提供的餐饮好评QAQ 发现室友是雅礼集训时候的室友,衡水小姐姐zyn. 但是寝室没有网没有信号没有桌子真的不良心啊...... 发现小卖部 ...
- python isinstance函数
isinstance是Python的一个内建函数 语法: 1 isinstance(object,classinfo) 如果参数object是classinfo的实例,或者object是classin ...
- Java线程之Dump
什么是线程dump Java Thread dump记录了线程在jvm中的执行信息,可以看成是线程活动的日志.Java线程转储文件有助于分析应用程序和死锁情况中的瓶颈. 如何获取线程转储文件 在这里, ...
- 关于Array.reduce的理解与拓展
2018年1月6日 首先我要感谢我的同事徒步上山看日出在我第一份实习的时候对我的指导,现在我也开始跟他一样开始养成写博客的习惯 现在开始讨论我遇到的第一个问题,这是我在看javascript高级程序设 ...
- 找出所有从根节点到叶子节点路径和等于n的路径并输出
//找出所有从根节点到叶子节点路径和等于n的路径并输出 Stack<Node> stack = new Stack<Node>(); public void findPath( ...
- Oracle COALESCE函数
Oracle COALESCE函数 Oracle COALESCE函数语法为COALESCE(表达式1,表达式2,...,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果都为 ...
- Very important notes about Spring @Transnational(Srping事务注解 @Transnational重要注意事项)
Sprint @Transnational is being ignored in the following cases: 1. when the caller method is calling ...
- Kafka集群安裝部署(自带Zookeeper)
kafka简介 kafka官网:http://kafka.apache.org/ kafka下载页面:http://kafka.apache.org/downloads kafka配置快速入门:htt ...
- 非线性函数图像表示(GLSL)
说明:绘图区域x轴(0->1),y轴(0->1); 1.y = 0.5 + sqrt(x * (1 - x)) 2.y = smoothstep(a , b , x) y = smooth ...