如何删除以下java代码中的重复项?

smi*_*ith 3 java

我写了下面的代码,即使我使用了set,​​我也得到了所有重复的代码.

private void validatingpswwithpattern(String password) throws IOException

  {
            List<String[]> list=new ArrayList<String[]>();
            list.add(new String[]{"raj","duvva","sathish"});
            list.add(new String[]{"raj","duvva","sathish"});
            list.add(new String[]{"raj","duvva","sathish"});
            list.add(new String[]{"raj","duvva","sathish"});
            list.add(new String[]{"raj","duvva","sathish"});
            list.add(new String[]{"raj","duvva","sathish"});


            Set<String[]> hs = new HashSet<String[]>();
             hs.addAll(list);
             list.clear();
             list.addAll(hs);
             System.out.println(list);
}
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 6

由于阵列不覆盖的默认实现hashCode,并equalsObject类,HashSet是无用的消除重复.

您可以使用a TreeSet并提供一个Comparator<String[]>确定两个String数组何时相等的数据.

TreeSet<String[]> set = new TreeSet<> (new Comparator<String[]>() {
  public int compare(String[] o1, String[] o2)
  {
    // write here logic to determine whether o1<o2 (return -1) or
    //                                       o1>o2 (return 1) or 
    //                                       o1 is equal to o2 (return 0)
  }
});
set.addAll(list);
Run Code Online (Sandbox Code Playgroud)