在Java中, 集合類型的對象初始化, 一般是先創(chuàng)建對象, 然后往集合里面增加元素,這種寫法直觀,但是撰寫代碼的時候感覺比較冗余, 是否有什么酷炫的方式簡化定義初始化呢?
本篇介紹字符串數(shù)組、List 和 Map類型對象的定義初始化簡單方式。
字符串數(shù)組的簡化初始化
常用的寫法:
String[] strArray = new String[3] ;
strArray[0] = "1";
strArray[1] = "2";
strArray[2] = "3";
簡化的寫法:
String[] strArray = new String[] {"1","2","3"};
這里使用一行代碼, 替換了四行代碼, 是不是簡化多了?
列表的簡化初始化
常用的寫法先創(chuàng)建對象, 再往里面添加元素, 代碼如下:
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以鍵值對的方式存儲數(shù)據(jù), 定義一個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");
}};
上面的方式是通過創(chuàng)建一個匿名子類并在初始化代碼塊中調用 put 方法來達到簡便地定義和初始化 HashMap 的目的。文章來源:http://www.zghlxwxcb.cn/news/detail-463979.html
但是請注意,這種方法在某些場景下可能會造成內存泄漏,因為匿名子類會保留對外部類的引用。而且上面代碼的簡化程度也不高,所以Map 的簡化方式不推薦使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-463979.html
本篇示例代碼
- https://github.com/osxm/java-ency/blob/master/src/main/java/com/osxm/je/chp1/CollectionInitial.java
到了這里,關于Java集合類型對象的快速初始化的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!