假设我有这些课程:
public class EdgeI {
public int from;
public int to;
public EdgeI (int a1, int a2) {
from = a1;
to = a2;
}
}
public class VertexI {
public List neighbors;
public String info;
public VertexI (List neig, String str) {
neighbors = neig;
info = str;
}
}
public class vertexWeight {
public int v;
public int w;
public vertexWeight (int vertexNum, int wum) {
v = vertexNum;
w = wum;
}
}
假设我有一个包含数字对的EdgeI
个对象列表。假设我还有一个包含空列表和字符串的VertexI
个对象列表。我想将以下内容添加到空列表中:
假设我将此作为我的EdgeI对象列表
(1,2), (1,2) (1,2), (1,3), (1,3), (1,4)
对于列表中的第一个VertexI
对象,我想添加以下列表
(2,3) (3,2)
到顶点对象。基本上我想取“to”整数和“to”整数重复的次数,并创建vertexWeight
个对象以添加到neig
类的VertexI
列表中。因此,第一个neig
对象的VertexI
将是vertexWeight
个对象(2,3)
和(3,2)
。为了实现这一点,我到目前为止创建了这个:
public void createGraph () {
int oldFrom = -1;
int oldTo = -1;
for(int i = 0; i < edges.size(); i++) {
EdgeI e = edges.get(i);
int from = e.from;
int to = e.to;
VertexI v = vertices.get(from);
v.neighbors.add(new vertexWeight (to, 1));
if (from == oldFrom && to == oldTo){}
//have to add increment the number 1 in the vertex weight object somehow
else {
oldFrom = from;
oldTo = to;
}
}
}
我需要一些提示或方法来实现这个?我的逻辑可能不正确,这就是我认为最需要帮助的地方。
答案 0 :(得分:0)
我建议为每个'to'值创建一个HashMap条目;索引是一个Integer或一个Float(或一个double),对应于你的'to'条目,该值包含一个int,你可以在每次遇到'to'值时递增。
如果这不能解决您的问题,也许您可以解释更多您需要的内容。