java - 如果存在零长度数组,我是否应该返回空列表?

标签 java collections

以这个构造函数为例:

private final List<ArrayList<Integer>> adjList;
public Graph(int vertexCount) {
        adjList = new ArrayList<ArrayList<Integer>>(vertexCount);
        for (int i = 0; i < vertexCount; i++) {
            adjList.add(new ArrayList<Integer>());
        }
    }

这里有人想要一个顶点列表,他只需提供顶点即可。

   public List<Integer> adj(int vertex) {
        return adjList.get(vertex); 
    }

现在如果顶点没有任何节点连接到它,那么返回值将是大小为 0 的列表。 通过添加显式检查来返回 Collections.Empty_List 是否有优势:如果列表大小为 0,则返回 Collections.Empty_List ?

最佳答案

无需这样做,您已经实例化了空列表。

你可以做的是使用return Collections.unmodifyingList(adjList.get(v)),这样你的Graph的用户就无法修改内部结构

关于java - 如果存在零长度数组,我是否应该返回空列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18240004/

相关文章:

java - Eclipse/Java : uncaught exceptions on the EDT suspend execution in EventDispatchThread. 运行()

java - Dockerfile 中的 Maven + Java 应用程序

使用集合删除方法时不会出现 Java 并发修改异常

c# - 是否有更优雅的方式将项目安全地添加到 Dictionary<> 中?

java - 使用 Java 的 C 语法检查器

java - 不能使用 kerberos 票证用 java 代码创建 hadoop 文件

java - Java中向BST添加对象

java - 根据内部字段在 TreeSet 中查找对象的最佳方法是什么?

swift - Swift 中的哪些值类型支持写时复制?

scala - Scala 中的reduceLeft 和reduceRight 之间的区别是什么?