160805、oracle查询:取出每组中的第一条记录
在Java 9发布之前,我们来分享一些Java 8开发技巧
【以下为译文】
在使用JAVA 8进行开发多年后,结合个人使用IntelliJ IDEA的心得,我总结了以下几个JAVA8技巧供大家参考。
Optional
Optional 是一个被高度低估的特性,假若能把它运用恰当,其实它是能帮助减少大量的NullPointerExceptions(无效指针)错误的。以下是有关Optional使用的两个要点:
Optional应只用于返回类型而不是参数或域
如果你尝试这样处理,IntelliJ IDEA将会作出如下提示:
避免使用调用的get()
Optional的强项是表达空值并让你对此做出处理。所以在进行下一步前进行值检查是很重要的。幸好IntelliJ IDEA也会对出做出提示:
取而代之,可以尝试使用orElse或orElseGet。
Lambda表达式的使用
Lambda是Java 8的又一个亮点,以下是有关Lambda的使用技巧:
尽量简单
化繁为简是正确使用lambda表达式的关键。你可以把它们简化为单独一行,也可以在方法中重构更复杂的表达式。
清晰明了
由于lambda表达式欠缺类型信息,所以有时会把类型信息放入参数中:
这未免过于冗长了,怎么办?我更倾向于为参数起个有意义的名字。例如:
Lambda表达式的设计
虽然我们较少会以lambda为参数来创建一个方法,但是如果有这样的需求,该如何处理呢?
IntelliJ IDEA能帮助实现函数型参数
为你的函数性接口添加@FunctionalInterface
如果你需要自定义函数性接口,那么IntelliJ IDEA将会成为很好的监督者:
覆盖提示:
重复声明:
为类而不是接口进行定义:
Streams(流)
Stream API是Java8新引入的,使用它有哪些地方注意的呢?
有序排列
使用方法引用
进行集合递归时,尽量使用Streams API
请对比下列两段代码:
在数组循环中使用for循环
在元数据类型数组中使用for循环,将会得到最好的性能表现:
160805、oracle查询:取出每组中的第一条记录的更多相关文章
- 160804、oracle查询:取出每组中的第一条记录
oracle查询:取出每组中的第一条记录按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info group by ...
- 【ORACLE】SQL查询出每个组中的第一条记录
CREATE TABLE [TestTable] ( ) NOT NULL , ) NOT NULL , ) ))) GO ALTER TABLE [TestTable] ADD PRIMARY KE ...
- Sqlserver 如何获取每组中的第一条记录
在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面.功能下面,从数据库的术语来说,就是查找出每组中的一条数据. 例子 我们要从上面获得的有效 ...
- linq中分组查询而且获取每个分组中的第一条记录,数据用于分页绑定
LINQ分组取出第一条数据 Person1: Id=1, Name="Test1" Person2: Id=1, Name="Test1" Person3: I ...
- sql中筛选第一条记录【分组排序】
问题描述 我们现在有一张表titles,共有4个字段,分别是emp_no(员工编号),title(职位),from_date(起始时间),to_date(结束时间),记录的是员工在某个时间段内职位名称 ...
- sql 分组后按时间降序排列再取出每组的第一条记录
原文:sql 分组后按时间降序排列再取出每组的第一条记录 竞价记录表: Aid 为竞拍车辆ID,uid为参与竞价人员ID,BidTime为参与竞拍时间 查询出表中某人参与的所有车辆的最新的一条的竞价记 ...
- SQL 查询每组的第一条记录
CREATE TABLE [dbo].[test1]( [program_id] [int] NULL, [person_id] [int] NULL ) ON [PRIMARY] /*查询每组分组中 ...
- oracle通过sql随机取表中的10条记录
oracle通过sql随机取表中的10条记录: SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE Row ...
- Oracle取查询结果数据的第一条记录SQL
Oracle取查询结果数据的第一条记录SQL: ; ;
随机推荐
- echart初体验 动态加载数据
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- C#指南,重温基础,展望远方!(4)表达式
表达式是在操作数和运算符的基础之上构造而成. 表达式的运算符指明了向操作数应用的运算. 运算符的示例包括 +.-.*./ 和 new. 操作数的示例包括文本.字段.局部变量和表达式. 如果表达式包含多 ...
- python 实现元组中的的数据按照list排序, python查询mysql得到的数据是元组格式,按照list格式对他们排序
需求: 需要用echart实现软件模块的统计分析,首先是对数据库的数据查询出来,然后给数据封装成列表(list)格式,数据传到前台,在echart实现绑定数据. 因为数据已经按照从大到小的顺序显示出来 ...
- 大话Web-Audio-Api
大话Web-Audio-Api 转:https://www.jianshu.com/p/0079d1fe7496 简单的例子: <script> var context; var musi ...
- java 容器结构
先来看下层次关系. 如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口 Collection(接口)├──List(接口)│ ├──LinkedList(实现类)│ ├ ...
- 标志位 last break
last-完成rewrite指令的处理,之后搜索对应的URI和location; break-完成rewrite指令的外理 [root@web01 app]# cat /app/server/ngin ...
- HDU 1358 Period(kmp简单解决)
Period Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- CCNA2.0笔记_WAN技术-专线
WAN拓扑 Routers.CSU/DSU.WAN switches.Core routers.Modems 使用 数据链路层协议(二层) 来建立对端连接 WAN的三种连接方式 广域网链路类型: ·V ...
- [转]ubuntu安装gcc
Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装. 如果单独安装gcc以及g++比较麻烦,幸运的是,为了能够编译Ubuntu的内核,Ubuntu提供了一个build-esse ...
- P3P解决cookie跨域
P3P是什么 P3P(Platform for Privacy Preferences)是W3C公布的一项隐私保护推荐标准,以为用户提供隐私保护. P3P标准的构想是:Web 站点的隐私策略应该告 ...