java - 表示列表数组

标签 java arrays list

这似乎是一个基本问题,但它确实让我感到困惑。我想表示一个图的邻接表。我有两个问题:

public class Graph
{
    private final int V;
    private List<Integer>[] adj;

    public Graph(int V)
    {
        this.V = V;
        this.adj = (List<Integer>[]) new LinkedList[V];  // this works
    }
}

问题 1:当我执行以下操作时,出现错误提示

Array type expected; found: 'java.util.LinkedList<java.lang.Integer>'
this.adj = (List<Integer>[]) new LinkedList<Integer>()[V];

我正在创建一个整数数组列表,对吗?

问题 2:当我这样做时,它再次给出一个错误,提示创建通用数组:

this.adj = (List<Integer>[]) new LinkedList<Integer>[V]; 

最后两种方法有什么问题?我认为第一个更正确。

最佳答案

在 (1) 中,您的表达式被解析为

(new LinkedList<Integer>())[V]

正在尝试索引新创建的 LinkedList ,因此出现错误。

在 (2) 中,您试图创建一个泛型数组。 You can't do this .相反,请考虑使用某种容器类型(例如 ArrayList<List<Integer>> )。

关于java - 表示列表数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27586826/

相关文章:

java - 违反完整性约束 (...) - 找到子记录、Java、Oracle、Hibernate

java - 如何设计我的 Java/C# 库,使其在未来发生变化时保持二进制兼容?

java - 如何从 JCAPS 迁移到 WSO2 ESB

java - 使用 iText 为生成的 PDF 创建单元测试

javascript - 如何在取消选择芯片 : AngularJS 时弹出数组的值

python - 使用枚举从现有列表中生成第二个列表时跳过索引的问题

c# - 来自 int、int16、int64 的反射 GetBytes

ios - 如何使用 swift 正确检查解析中的现有对象

c# - 按另一个列表中的值匹配对对象列表进行排序

python - 在 Python 中自动增长列表