Collections 使用JUNG2将节点添加到集合

Collections 使用JUNG2将节点添加到集合,collections,jung,Collections,Jung,我正在尝试添加这样的节点(C.add(n)) 我有一个问题: java.util.Collections$UnmodifiableCollection.add处的线程“main”java.lang.UnsupportedOperationException中出现异常(未知源)) 不可执行代码示例: UndirectedSparseMultraph g=getgraph1(); 集合c=null; 对于(MyNode n:g.getVertices()){ 如果(n.id==3){ c=g.g(n

我正在尝试添加这样的节点
(C.add(n))

我有一个问题:

java.util.Collections$UnmodifiableCollection.add处的线程“main”java.lang.UnsupportedOperationException中出现异常(未知源))

不可执行代码示例:

UndirectedSparseMultraph g=getgraph1();
集合c=null;
对于(MyNode n:g.getVertices()){
如果(n.id==3){
c=g.g(n);
System.out.println(C);C.add(n);}
}

您试图使用
无向SparseMultraph.GetNeights(V vertex)
获取
顶点
此方法返回一个不可修改的集合

公共集合GetNeights(V顶点){
...
返回集合。不可修改的集合(邻居);
}
同样

公共集合getVertices() { 返回集合。不可修改的集合(vertex_maps.keySet()); } 及

公共集合getEdge() { 集合边=新的ArrayList(directed_edges.keySet()); edges.addAll(无向_edges.keySet()); 返回集合。不可修改集合(边); } 根据您的评论,似乎您正在尝试将节点
n
添加到其
邻居的集合中。如果是这种情况,您是否尝试过更换

(C.add(n))

g.addEdge(newmylink(),n,n)


添加一个自相交。

您能否提供一个示例来说明您的问题。这几乎肯定是原因所在。为了提供一些上下文,集合被设置为不可修改,因为删除顶点或边并添加边需要一些内部簿记来保持数据结构处于良好状态。(添加顶点可以通过集合上的add()完成,但出于一致性原因,也可以通过单独的方法进行处理,即addVertex())。无向SparseMultraph g=getgraph1();集合C=null;对于(MyNode n:g.getVertices()){if(n.id==3){C=g.getneights(n);System.out.println(C);C.add(n);}//System.out.println(“La collection est”+C);}谢谢。我想构建一个可修改的节点集合,可以添加或删除它的一些对象。这就是我的目的。(为什么要使用g.adding()!!此节点是g的成员)@Delel恐怕我真的不明白您想做什么。我建议您接受这个答案(因为它解释了为什么您的代码会导致
异常
),然后再问一个新问题。评论部分不是继续的最佳位置。