从抽象产品列表中提取具体产品的子列表

时间:2013-04-25 19:44:16

标签: java generics arraylist jung

enter image description here

我使用jung

构建了一个Hyper图
  Hypergraph hypergraph = new SetHyperGraph<Vertex,HyperEdge>();

然后我添加所有顶点(图像,标记,位置)

    hypergraph.addVertex()

    ArrayList<Vertex> allVertex = hypergraph.getVertices;

现在我要从列表allVertex

中仅提取图像顶点

为什么这条指令是非法的?

    ArrayList<ImageVertex> allImageList=allVertex.subList(0,j);

有人有其他解决方案吗?

2 个答案:

答案 0 :(得分:1)

因为ArrayList<ImageVertex>不是ArrayList<Vertex>的{​​{3}}。

可能的解决方案是:

ArrayList<ImageVertex> allImageList= new ArrayList<>();

for (Vertex vertex: allVertex.sublist(0,j)) {
    if (vertex instanceof ImageVertex) {
        allImageList.add((ImageVertex) vertex);
    }
}

答案 1 :(得分:1)

只是示例代码

List<ImageVertex> allImageList = new ArrayList<ImageVertex>();
for (Vertex vertex : allVertex) {
  if (vertex instanceof ImageVertex) {
    allImageList.add((ImageVertex) vertex);
  }
}