Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 集合的用途是什么。空映射、空列表、空集合_Java - Fatal编程技术网

Java 集合的用途是什么。空映射、空列表、空集合

Java 集合的用途是什么。空映射、空列表、空集合,java,Java,既然它们都是不可变的,为什么要使用它呢?有时候,它比返回null更好 public List<?> getList(){ if(list == null){ return Collections.emptyList(); } return list; } public List getList(){ if(list==null){ 返回集合。emptyList(); } 退货清单; } 它们是方便的功能:对于必须返回非空值的函数,您可以使

既然它们都是不可变的,为什么要使用它呢?

有时候,它比返回
null
更好

public List<?> getList(){
    if(list == null){
        return Collections.emptyList();
    }

    return list;
}
public List getList(){
if(list==null){
返回集合。emptyList();
}
退货清单;
}

它们是方便的功能:对于必须返回非空值的函数,您可以使用它们,不必创建新对象,也可以对它们进行相等性检查

只需添加到上述内容:

**在方法调用方将接收空的内容而不是实例化的列表/映射的情况下,使用空列表/映射/集可以获得一些性能优势。如果您查看Collections.java的源代码,您可以看到EmptyList,EmptyMap静态类具有与常规ArrayList不同的精简方法实现。哈希映射

**节省JVM堆空间,因为没有为这些空集合设置初始容量


上面的内容看起来可能并不重要,但是重要的考虑因素和最佳实践。

返回一个不变的列表是可以的;而且,只要文档中没有不同的说明,它甚至是首选的方式