【问题标题】:How to remove specific duplicate data in array after sorting?排序后如何删​​除数组中的特定重复数据?
【发布时间】:2021-02-02 16:44:31
【问题描述】:

这是我的代码:

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: mamy, 30, new, old
       daddy, 21, new, new
output: daddy, 21,new,new
        mamy , 30, new, old

预期输出:

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

我的问题是如何在将数组存储到final.txt 之前删除数组中的重复项?有什么建议吗?

【问题讨论】:

    标签: java arrays sorting remove-if


    【解决方案1】:

    我认为 Set 非常适合你,它消除了重复。

      Set<Data> dataSet = new HashSet<>(dataList);
    

    【讨论】:

      【解决方案2】:

      要删除 duplicates,请在 sorting 之前使用此代码。

      ArrayList<Data> newDataList = new ArrayList<>(); 
      for (Data element : dataList) { 
          if (!newDataList.contains(element)) { 
              newDataList.add(element); 
          } 
      }  
      dataList = newDataList;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-03
        • 2021-10-01
        • 2015-10-31
        • 1970-01-01
        • 2016-10-01
        • 1970-01-01
        • 2021-04-20
        相关资源
        最近更新 更多