創建一些POJO類或元組來保存值。
分割基於所述分離器(空間)將字符串
循環遍歷字符串標記陣列和將值插入對象,並創建基於名稱它們之間的關係。
如果只有3個元素可以硬編碼,它會很容易。如果有一個可變數字,那麼你需要變得更聰明,並有一個數組或一組POJO /節點,這樣你就可以根據名字檢索一個。
下面是一些僞代碼,以幫助
String[] tokens = str.split(' ');
Set<node> nodes = new HashMap<String, node>();
while(has more tokens in tokens){
String s = tokens.next();
if(nodes.get(s) == null){
Node n = new node();
nodes.add(s, n);
}
else{
Node n = nodes.get(s);
}
n.name = s;
String s2 = tokens.next();
Node n2 = nodes.get( s2); // retrieve node based on name
if(n2 == null){
Node n2 = new node();
n2.name = s2;
nodes.add(s2, n2);
}
n.left = n2;
// do same thing for the other child
您可以用數組或集或按照自己的喜好去做。 E:不要創建3個類。那很糟。沒有理由3個對象不應該有相同的類。你需要一個通用的通用節點類,它可以滿足他們所有的目的,所以它是一個很好的OOP來導航節點樹。從對方獲取不同的類類型A,B,C是不好的,並且會使代碼中的對象非常痛苦。
你想要的是一個單獨的「節點」類,然後是3個不同的實例。
節點a,節點b,節點c;
這樣他們就可以全部相互鏈接了。
Class Node
Node left;
Node right;
Public Node(){}
就是這樣。如果你願意,你可以用get/set方法封裝左右節點。
(忽略此,如果由於某種瘋狂的原因你必須告訴你用A,B和C類的分配)
你所談論的編寫解析器 – ControlAltDel
爲什麼解析器?從數組我知道每列代表一個特定的對象(列1 = A,列2 = B ...)。所以最後我需要一個HashMap來存儲關於id的信息。如果id a1不在hashMap中 - >創建新的對象A等等。我的問題是,林不知道熱,迭代和鏈接對象 – Mitzu
ControlAltDel它不是解析他正在掙扎與如何在解析後建立關係。這是一個公平的問題。 – SpacePrez