假設我有這些類:與多個陣列工作,並增加對象
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
對象,將其添加到VertexI
類的neig
列表中。因此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;
}
}
}
我需要一些提示或方法來實現這個?我的邏輯可能不正確,那是我需要最多幫助的地方。
儘量避免像您的第一個代碼示例一樣的「假」代碼。如果你想簡潔,你可以不用列出語法錯誤的構造函數簽名,而是包含'public'或默認訪問字段,並用'// ...'縮寫構造函數體。 (一個好主意,如果構造函數可以由IDE生成)。這樣,或多或少地清楚你的類的結構是什麼,並且代碼將在複製粘貼後編譯,因此需要嘗試較少的修改回答。 – millimoose
修復了小費的提示 – ellangog