很多时候,为了方便完成某些功能,大家是挖空心思地去使用一些技巧,让我们的代码更直白美观,下面为大家分享几个Java当中的技巧。
使用stream实现list转map
普通:对于list转map很多时候大家都使用遍历,然后取出值,放入结果中,如下
神技:使用stream实现,通过Collectors.groupingBy
stream有很多非常直观和好用的方法,例如sum,count,distinct等等
减少非空判断,优雅地使用Objects工具
通常操作的时候使用!=null去做判断,比较不优雅
jdk1.7提供了Objects工具,使用直观方便,很多方法中帮我们做了非空判断,减少!=null的代码
随机数可以使用种子,保证随机规律
有时候为了保存一个固定的值,往往还需要存数据库或者文件,非常麻烦,我们可以通过特定的值,来通过随机数的种子来计算特定的值。
例如第二个print出来的5次循环的值,必然相等。只需要保证seed的值固定,随机数算出的值必然固定。
双大括号语法
很多时候,需要初始化一些list的数据,如果像下面操作,会显得繁琐
神技:使用{{}}语法,如下
注意:很多同学提到此处有问题,不建议程序大量这样使用,由于该方法是匿名内部类初始化方法,会产生很多xxx$1.class,xxx$2.class……的类,会存在内存泄露问题。
特殊场景需要用到的goto
大家都知道java是没有goto语法的,但提供了类似goto语法效果的方法,如下
try-with-resource自动关闭资源
JVM对外部资源的引用却无法自动回收,例如数据库连接,网络连接以及输入输出IO流等,这些连接就需要我们手动去关闭,不然会导致外部资源泄露,连接池溢出以及文件被异常占用等。
因此在IO操作中,我们常常需要写如下的代码,进行手动释放资源
jdk1.7给我们提供了try-with-resource语法,让我们再也不用在finally中调用close方法了,jvm自动调用。
通过MultiValueMap去构建Map
如果需要构建Map
1. 接口描述 接口请求域名: tke.tencentcloudapi.com 。 删除一个云原生Prometh...
最近 阿里云 B 站没声音 是在憋大招 8月5日周四 19:00 是阿里云的直播首秀 给大...
CDN分发的内容默认为公开资源,URL鉴权功能主要用于保护用户站点资源,防止资源...
注册了 域名 不备案可以吗?可以的。 注册域名 并不是一定要备案的,只有搭 建网...
安装NetworkManager后使用Cloud-Init注入密钥或密码失败的主要原因是由于Cloud-I...
如果您需要更新资源,但是资源的属性不支持直接修改,您可以替换更新资源。 背景...
本文介绍云服务器ECS本地SSD型实例规格族的特点,并列出了具体的实例规格。 推荐...
ALIYUN::ESS::ScalingGroupEnable类型用于启用伸缩组。 语法 { "Type": "ALIYUN:...
自2014年大数据首次进入政府工作报告,中国市场就开始了一场大数据的淘数热。201...
之前在家里的老电脑中,发现一个加密zip压缩包,由于时隔太久忘记密码了,依稀记...