0

This is my code:

FileWriter writers = null;
try {
    BufferedReader reader = new BufferedReader(new FileReader("Database.txt"));
    ArrayList<Data> dataList = new ArrayList<>();
    String line = "";
    while ((line = reader.readLine()) != null) {
        //split string and construct Data object and add it to dataList 
        dataList.add(parse(line));
    }
    reader.close();
    Collections.sort(dataList);

    writers = new FileWriter("final.txt");
    for (Data d : dataList) {
        writers.write(d.toString());
        writers.write("\r\n");
    }
    writers.close();
} catch (Exception ex) {
    ex.printStackTrace();
} finally {

}

Input/Output in this code:

input: mamy, 30, new, old
       daddy, 21, new, new
output: daddy, 21,new,new
        mamy , 30, new, old

Expected output:

daddy,21,new
mamy,30,new,old

My Problem is how to remove duplicate in array before storing it to final.txt? any suggestion?

Community
  • 1
  • 1

2 Answers2

0

To remove duplicates use this code right before sorting.

ArrayList<Data> newDataList = new ArrayList<>(); 
for (Data element : dataList) { 
    if (!newDataList.contains(element)) { 
        newDataList.add(element); 
    } 
}  
dataList = newDataList;
XO56
  • 332
  • 1
  • 12
0

I think Set is perfect for you, it eliminates duplicates.

  Set<Data> dataSet = new HashSet<>(dataList);
tomeszmh
  • 218
  • 2
  • 9