的列表中刪除重複我有一個Excel與下面的數據(虛擬)如何從對象
a b c
d b c
e b c
f b c
g b c
e b c
d b c
d b c
d b c
我讀這個文件,並存儲在一個集中的結果文件,以便重複可以被刪除,我只有唯一的名單。 下面是我的嘗試
FileInputStream file = new FileInputStream(new File("C:\\Users\\harshita.sethi\\Desktop\\ALLOT010T_Input_Keywords.xls"));
HSSFWorkbook w = new HSSFWorkbook(file);
HSSFSheet sheet = w.getSheetAt(0);
int totalrows = sheet.getLastRowNum();
System.out.println(sheet.getRow(0).getPhysicalNumberOfCells());
String[][] data = new String[totalrows+1][sheet.getRow(0).getPhysicalNumberOfCells()];
Set<String[]> keySet = new HashSet<>();
for (int i = 0; i <= totalrows; i++) {
for (int j = 0; j < sheet.getRow(0).getPhysicalNumberOfCells(); j++) {
HSSFCell cell = sheet.getRow(i).getCell(j);
// writing keywords from excel into a hashmap
data[i][j]=cell.getRichStringCellValue().getString();
}
keySet.add(data[i]);
}
Iterator<String[]> iterator = keySet.iterator();
System.out.println("Output Set is as below");
while(iterator.hasNext()){
String[] next = iterator.next();
System.out.println(next[0] + "\t"+ next[1] +"\t "+next[2]);
}
這段代碼的輸出如下所示
Output Set is as below
d b c
e b c
a b c
d b c
d b c
g b c
e b c
f b c
d b c
設定並沒有消除重複。我可以用什麼其他方法來消除這些重複。 任何列可以具有不同或相同的值。所以我不能刪除基於特定列的重複項。
我希望整行是唯一的。 PS:這個數據就是傻乎乎的。在真實場景中,我有更多的列,並且任何列值都可能不同,這會使行具有唯一性。
在你的情況你想要的'd b C'和'E B C'副本將被刪除? – Emz
我想說'd b c'和'e b c'是唯一的行,因爲它們都有一個不同的值。但是'd b c'和'd b c'是相同的,因爲整行是相同的。 –
爲什麼不能使用創建一個三列的對象,並使用比較器而不是數組? –