1package googleCollections;
2
3import java.util.ArrayList;
4import java.util.Arrays;
5import java.util.Collections;
6import java.util.List;
7import java.util.Map.Entry;
8
9import com.google.common.collect.ImmutableList;
10import com.google.common.collect.ImmutableMap;
11import com.google.common.collect.ImmutableSet;
12
13/** *//**
14 * Copyright (C): 2009
15 * @author 陈新汉
16 * @version 创建时间:Jan 12, 2010 11:10:05 PM
17 */
18
19/** *//**
20 * 不可变集合类
21 * 适合作为内容数据不可变的容器类
22 * 例如:常量数组、常量Map等等。
23 *
24 * 注意:为了实现不可变集合,JDK 5.0里面是通过Collections.unmodifiableList(list)实现的!
25 */
26public class ImmutableListTest {
27
28 public static final List<String> imlist; //以前实现(方式一)
29 public static final List<String> imlist2; //以前实现(方式二)
30
31 static{
32 List<String> list=new ArrayList<String>();
33 list.add("a");
34 list.add("b");
35 list.add("c");
36 imlist=Collections.unmodifiableList(list); //通过这种方式实现不可变的集合,以前实现(方式一)
37 imlist2=Collections.unmodifiableList(Arrays.asList("a","b","c")); //或者,通过这种方式实现不可变的集合,以前实现(方式二)
38 }
39
40 /** *//**
41 * @param args
42 */
43 public static void main(String[] args)
44 {
45 //常量列表
46 ImmutableList<String> imlist=ImmutableList.of("a", "b", "c");
47 //imlist.add("d"); //注意,编译会报异常
48 for(String s:imlist){
49 System.out.println(s);
50 }
51
52 //常量Map
53 ImmutableMap<String,String> immap=new ImmutableMap.Builder<String,String>()
54 .put("a","1")
55 .put("b","2")
56 .put("c", "3")
57 .build();
58 for(Entry<String,String> e:immap.entrySet()){
59 System.out.println(e.getKey()+"="+e.getValue());
60 }
61
62 //常量Set
63 ImmutableSet<String> imset=ImmutableSet.of("a","b","c");
64 for(String s:imset){
65 System.out.println(s);
66 }
67 }
68
69}
70
(友情提示:本博文章欢迎转载,但请注明出处:hankchen, http://www.blogjava.net/hankchen)
|