在Java中, 集合类型的对象初始化, 一般是先创建对象, 然后往集合里面增加元素,这种写法直观,但是撰写代码的时候感觉比较冗余, 是否有什么酷炫的方式简化定义初始化呢?
本篇介绍字符串数组、List 和 Map类型对象的定义初始化简单方式。
字符串数组的简化初始化
常用的写法:
String[] strArray = new String[3] ;
strArray[0] = "1";
strArray[1] = "2";
strArray[2] = "3";
简化的写法:
String[] strArray = new String[] {"1","2","3"};
这里使用一行代码, 替换了四行代码, 是不是简化多了?
列表的简化初始化
常用的写法先创建对象, 再往里面添加元素, 代码如下:
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
简化的写法:
List<String> list = Arrays.asList("1","2","3");
通过Arrays的asList() 方法来建立列表类型对象的初始化。
Map类型的简化初始化 - 不建议使用
Map以键值对的方式存储数据, 定义一个HashMap类型的对象并初始化的代码如下:
Map<String,String> map = new HashMap<String,String>();
map.put("key1", "1");
map.put("key2", "2");
map.put("key3", "3");
可以使用双括号初始化(Double Brace Initialization)来简便地初始化 HashMap,代码如下:
Map<String,String> map = new HashMap<String,String>(){{
put("key1", "1");
put("key2", "2");
put("key3", "3");
}};
上面的方式是通过创建一个匿名子类并在初始化代码块中调用 put 方法来达到简便地定义和初始化 HashMap 的目的。文章来源:https://www.toymoban.com/news/detail-463979.html
但是请注意,这种方法在某些场景下可能会造成内存泄漏,因为匿名子类会保留对外部类的引用。而且上面代码的简化程度也不高,所以Map 的简化方式不推荐使用。文章来源地址https://www.toymoban.com/news/detail-463979.html
本篇示例代码
- https://github.com/osxm/java-ency/blob/master/src/main/java/com/osxm/je/chp1/CollectionInitial.java
到了这里,关于Java集合类型对象的快速初始化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!