2011-04-20 182 views
1

我正在使用稱爲矩陣的二維數組。我需要檢索數組中的唯一元素。在矩陣中找到唯一元素

零ABCGF
Y1 A1 B2 C1 G1 F1
Y2 A1 B1 C2 G2 F1
Y3 A2 B1 C2 G1 F2
Y4 A1 B2 C2 G2 F1
Y5 A2 B2 C1 G1 F2

因此,例如,對於列A,我應該得到a1和a2。對於B,b1和b2等等。

我試過了不同的東西,但迄今沒有任何工作。以下是我放在一起:

public void UniqueElement(String line){ 

     List tempList = Arrays.asList(line); 

     Set set = new HashSet(tempList); 
     System.out.println(""); 
     System.out.printf("%s", set); 

    }//UniqueElement Method 

這裏是我所得到的:

[爲零,A,B,C,G,F] [Y1,A1,B2,C1,G1,F1 ] [Y2,A1,B1,C2,G2,F1] [Y3,A2,B1,C2,G1,F2] [Y4,A1,B2,C2,G2,F1]

可能有人建議另一種嘗試在我的矩陣中選出獨特項目的方法?

感謝

回答

0

你可以做嵌套循環foreach並通過數組中的元素行走。當你走時,將「新」或看不見的元素存儲在列表中。要決定你是否看過一個元素,每次走這個列表,如果你找到了一個匹配的話,移動到下一個數組元素。否則(不匹配),將該元素添加到列表中並移動到下一個數組元素。

這種算法是非常蠻力和不能很好地擴展,但它給你獨特元素的列表。

0

如果您可以節省內存......循環使用每個項目,並將其用作Map的鍵,每次遇到密鑰時都會遞增該值。一旦完成,循環地圖並輸出值爲1的鍵。

事實上,由於您只關心唯一性,因此可以使用布爾值作爲值。 true =唯一,false =不唯一