首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

集合Collections使用的有关问题

2012-10-27 
集合Collections使用的问题Collections字段EMPTY_SET、EMPTY_LIST和EMPTY_MAP分别起到了什么作用呢?我用以

集合Collections使用的问题
Collections字段EMPTY_SET、EMPTY_LIST和EMPTY_MAP分别起到了什么作用呢?我用以下代码:

Java code
        List<String> list = Collections.EMPTY_LIST;        list.add("aa");        System.err.println(list.size());

会报Exception in thread "main" java.lang.UnsupportedOperationException的异常,也就是说List为一个空的列表,但定义了之后有不能使用,那请问各位大神List<String> list = Collections.EMPTY_LIST;这句话定义的列表到底起了什么作用呢?或者在哪些地方能用到?最好举个例子哈!在这里先谢谢大家啦!

[解决办法]
有些方法返回list,map或者set,同时这些方法要求永不返回null
譬如有些条件一判断就知道要返回一个空集合,就不得不new一个,然后返回。就可以用这里的这个常量
[解决办法]
它返回的是一个不可变的List。没有办法add。
使用场影,比如当一个查询结果集为空,而不想返回null时,这时可以用Collections.EMPTY_LIST来返回一个空集合。

如果楼主平时用不到的话,那就不要用好了,不用太纠结这个。
[解决办法]
看看 Null Object模式
[解决办法]
EMPTY_LIST 返回的list是不可变的(Immutable) 

所以不能用ADD
[解决办法]
EMPTY_SET
public static final Set EMPTY_SET空的 set(不可变的)。此 set 是可序列化的。 

另请参见:
emptySet()

--------------------------------------------

EMPTY_LIST
public static final List EMPTY_LIST空的列表(不可变的)。此列表是可序列化的。 

另请参见:
emptyList()

--------------------------------------------

EMPTY_MAP
public static final Map EMPTY_MAP空的映射(不可变的)。此映射是可序列化的。 

从以下版本开始: 
1.3 
另请参见:
emptyMap()

热点排行
Bad Request.