2011-04-20 121 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 =不唯一