`

Java中List与Map初始化的一些写法

阅读更多

Java的在还没有发现新写法之前时,我一直是这么初始化List跟Map:

//初始化List
List list = new ArrayList();
list.add("string1");
list.add("string2");
//some other list.add() code......
list.add("stringN");
//初始化Map
Map map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
//.... some other map.put() code
map.put("keyN", "valueN");

 这种方法有点麻烦,下面介绍一下另外一种方法:

//初始化List
List list = new ArrayList(){{
  add("string1");
  add("string2");
  //some other add() code......
  add("stringN");
}};
//初始化Map
Map map = new HashMap(){{
  put("key1", "value1");
  put("key2", "value2");
  //.... some other put() code
  put("keyN", "valueN");
}};

虽然看起来没少写多少代码,但是个人觉得这种方式还是简洁多了很多。

利用ArrayList的add方法完成初始化赋值,实例如下:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class Test
{
    public static void main(String[]args)
    {
    	//初始化List
    	List list = new ArrayList(){{
    	  add("string1");
    	  add("string2");
    	  //some other add() code......
    	  add("stringN");
    	}};
    	for(int i=0;i<list.size();i++) {
    		System.out.println(list.get(i));
    	}
    	
    	//初始化Map
    	Map map = new HashMap(){{
    	  put("key1", "value1");
    	  put("key2", "value2");
    	  //.... some other put() code
    	  put("keyN", "valueN");
    	}};
    	Iterator iter = map.entrySet().iterator();
    	while (iter.hasNext()) {
    		Map.Entry entry = (Map.Entry) iter.next();
    		Object key = entry.getKey();
    		Object val = entry.getValue();
    		System.out.println(key + ":" + val);
    	}
    }
}

运行结果:

string1
string2
stringN
key2:value2
key1:value1
keyN:valueN

附: 利用Array与ArrayList的相互转换方法,代码如下:
ArrayList list = new ArrayList(Arrays.asList("Ryan", "Julie", "Bob"));

资料来源:http://flycars001.iteye.com/blog/2025336

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics