溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java中List如何去掉重復元素

發(fā)布時間:2020-07-17 10:56:40 來源:億速云 閱讀:285 作者:小豬 欄目:編程語言

這篇文章主要為大家展示了java中List如何去掉重復元素,內(nèi)容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

使用LinkedHashSet刪除arraylist中的重復數(shù)據(jù)(有序)

LinkedHashSet是在一個ArrayList刪除重復數(shù)據(jù)的最佳方法。LinkedHashSet在內(nèi)部完成兩件事:

  • 刪除重復數(shù)據(jù)
  • 保持添加到其中的數(shù)據(jù)的順序
List<String> words= Arrays.asList("a","b","b","c","c","d");
HashSet<String> set=new LinkedHashSet<>(words);
for(String word:set){
   System.out.println(word);
}

使用HashSet去重(無序)

//去掉List集合中重復的元素
List<String> words= Arrays.asList("a","b","b","c","c","d");
//方案一:
for(String word:words){
  set.add(word);
}
for(String word:set){
  System.out.println(word);
}

使用java8新特性stream進行List去重

要從arraylist中刪除重復項,我們也可以使用java 8 stream api。使用steam的distinct()方法返回一個由不同數(shù)據(jù)組成的流,通過對象的equals()方法進行比較。

收集所有區(qū)域數(shù)據(jù)List使用Collectors.toList()。

Java程序,用于在不使用Set的情況下從java中的arraylist中刪除重復項。

List<String> words= Arrays.asList("a","b","b","c","c","d");
words.stream().distinct().collect(Collectors.toList()).forEach(System.out::println);

利用List的contains方法循環(huán)遍歷

List<String> list= new ArrayList<>();
    for (String s:words) {
      if (!list.contains(s)) {
        list.add(s);
      }
    }

注:當數(shù)據(jù)元素是實體類時,需要額外重寫equals()和hashCode()方法。
例如:

以學號為依據(jù)判斷重復

public class Student {
  String id;
  String name;
  int age;

  public Student(String id, String name, int age) {
    this.id = id;
    this.name = name;
    this.age = age;
  }

  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;

    Student student = (Student) o;

    return Objects.equals(id, student.id);
  }

  @Override
  public int hashCode() {
    return id != null &#63; id.hashCode() : 0;
  }

  @Override
  public String toString() {
    return "Student{" +
        "id='" + id + '\'' +
        ", name='" + name + '\'' +
        ", age=" + age +
        '}';
  }
}

以上就是關(guān)于java中List如何去掉重復元素的內(nèi)容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI