Java集合类型对象的快速初始化

在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 的目的。

但是请注意,这种方法在某些场景下可能会造成内存泄漏,因为匿名子类会保留对外部类的引用。而且上面代码的简化程度也不高,所以Map 的简化方式不推荐使用。

本篇示例代码



猜你喜欢

转载自blog.csdn.net/oscar999/article/details/130876307