网站首页 > 精选教程 正文
先来看一段代码
List<String> userList = new ArrayList<>();
userList.add("zhangsan");
userList.add("lisi");
userList.add("wangwu");
这是集合初始化常用写法,虽然没什么毛病,但总觉得不够优雅,我们可以来调整一下
List<String> userList = new ArrayList<String>() {
{
add("zhangsan");
add("lisi");
add("wangwu");
}
};
利用了匿名内部类,虽然看似变化不大,但更有整体性,也更简洁些,歪哥还是很喜欢这种写法的。
类似的,Map结构也可以使用这种写法
Map<String, String> userMap = new HashMap<>() {{
put("user1", "zhangsan");
put("user2", "lisi");
}};
除此之外,联想到我们经常使用的不可变列表Arrays.asList(...),也可以由此改造一下
List<String> userList = new ArrayList<>(Arrays.asList("zhangsan", "lisi", "wangwu"));
我们包装了一下,让其成为正常的可变列表。这种写法代码量更少了,但加了嵌套,其实看起来是“臃肿”的。类似的还有Java9引入的List.of(...),以及Collections.unmodifiableList(...)等等。
还有一种stream方式,如下
List<String> userList = Stream.of("zhangsan", "lisi", "wangwu").collect(Collectors.toList());
怎么说呢,感觉有点刻意“炫技”了,当然喜欢这种写法的可以尝试。
最后就是使用第三方库了,比如guava
List<String> userList = Lists.newArrayList("zhangsan", "lisi", "wangwu");
其实没太大区别。
整体看下来,列表初始化毕竟是一个“简单的小事”,再折腾可能也都大差不差,歪哥还是最推荐匿名内部类的写法,从整体性、可读性、简洁优雅程度都有提升。
猜你喜欢
- 2024-12-27 Java集合、多线程、反射和Spring框架总结,源码解析
- 2024-12-27 面试官必问:Java中的JUC工具类详细揭秘
- 2024-12-27 C# 基础知识系列- 3 集合数组
- 2024-12-27 100个Java工具类之59:集合HashMap
- 2024-12-27 常见面试题之java系列
- 2024-12-27 初步认识Java集合框架
- 2024-12-27 java中常用第三方类库
- 2024-12-27 Java Collections 工具类集合框架中常用算法解析
- 2024-12-27 GUAVA集合类使用总结
- 2024-12-27 Java集合-Properties
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)