2012-10-14 188 views
1

我有字符串的數組像這樣:打印出的數組元素

array[0] = "1 4" 
array[1] = "2 0" 
array[2] = "2 1" 
array[3] = "4 2" 

,並想以處理該陣列,並打印出該陣列元件 對所述第二部分同一線的時候,數組元素的第一部分有重複,就像這樣:

4 
0 1 
2 

我一直青睞於工作了這一點,但我不斷收到更多的迷茫......

處理基於連續的線。

+1

FYI看起來像一個數組,而不是一個ArrayList。 –

回答

1

它看起來像一個直接的Java編碼問題對我說:

String lastKey = null; 
for (String str : array) { 
    String[] parts = str.split(" "); 
    if (parts[0].equals(lastKey)) { 
     System.out.print(" "); 
    } else if (lastKey != null) { 
     System.out.println(); 
    } 
    System.out.print(parts[1]); 
    lastKey = parts[0]; 
} 
System.out.println(); 

這是假設你的輸入文件的第一個字段有序......

+0

是的,'lastKey'從不更新。 – FSP

+0

是......固定......(太專注於空間和換行符的煩雜東西) –

+0

啊這是我需要的。非常感謝。現在有這麼多的意義:) – meanrims

0

我會檢查數組列表的索引n和n + 1。標記這兩個字符串並比較第一個元素。如果第一個元素相同,則可以在一行中打印來自兩個字符串的第二個元素。

我假設你沒有特別尋找2作爲第一個數字,你只想檢查列表中的連續元素。是這樣嗎?

+0

是連續元素,不是'2' – meanrims

+0

好吧。感謝您的澄清。您正在處理的輸入有多大? – FSP

1

縱觀評論,它看起來像你可以使用MultiMaps和簡化設計

MultiMap mhm = new MultiHashMap(); 
for (string line: array) { 
    String []pair = line.split(" "); 
    mhm.put(pair[0],pair[1]); 
} 

for (Collection coll = (Collection) mhm.values()) { 
    //print all values from collection? 
}