我正在尝试添加一个类似于这个( C.add(n)))的节点
我有个问题:
java.util.Collections$UnmodifiableCollection.add(Unknown源代码中线程“主”java.lang.UnsupportedOperationException中的异常))
不可执行代码示例:
UndirectedSparseMultigraph<MyNode, MyLink> g = getgraph1();
Collection<MyNode> c = null ;
for( MyNode n : g.getVertices() ){
if( n.id == 3 ){
c = g.getNeighbors(n);
System.out.println(C); C.add(n); }
}发布于 2012-08-22 15:24:37
您正在尝试使用UndirectedSparseMultigraph.getNeighbors(V vertex)获取Vertices --此方法返回不可修改的集合
public Collection<V> getNeighbors(V vertex) {
...
return Collections.unmodifiableCollection(neighbors);
}也一样
public Collection<V> getVertices()
{
return Collections.unmodifiableCollection(vertex_maps.keySet());
}和
public Collection<E> getEdges()
{
Collection<E> edges = new ArrayList<E>(directed_edges.keySet());
edges.addAll(undirected_edges.keySet());
return Collections.unmodifiableCollection(edges);
}基于您的注释,它说明您正在尝试将节点n添加到其neighbors集合中。如果是这样的话,让你试着替换一下
( C.add(n)))
使用
g.addEdge(new MyLink(), n, n);
若要添加自交,请执行以下操作。
https://stackoverflow.com/questions/12069243
复制相似问题