如何去重HashSet中的重複對象?

來源:互聯網
上載者:User

歡迎加入我的QQ交流群425783133

摘要 使用HashSet實現Set集合,集合中存放的對象有重複,重複條件是自訂的。

如何去除Set中的重複對象。

方案一

對bean重寫其equals和hashcode。
      @Override      public int hashCode() {             return gradeType.hashCode();      }      @Override      public boolean equals(Object obj) {             if(obj instanceof ExamGradeStateBean) {                  ExamGradeStateBean state = (ExamGradeStateBean) obj;                   return (state. gradeType.equals( gradeType));            }             return super.equals(obj);      }

編寫一個方法,過濾Set中的重複資料。

假設有一個重複的SetSet<Person> set = new HashSet<Person>();set.add( new Person(1, "p1"));set.add( new Person(2, "p2"));set.add( new Person(3, "p3"));set.add( new Person(4, "p2"));set.add( new Person(5, "p3"));set.add( new Person(6, "p4"));//去除set中重複資料的方法private static Set<Person> removeDuplicate(Set<Person> set) {    Map<String, Person> map = new HashMap<String, Person>();    Set<Person> tempSet = new HashSet<Person>();         for(Person p : set) {              if(map.get(p.getName()) == null ) {                   map.put(p.getName(), p);                                      } else {                   tempSet.add(p);              }          }    set.removeAll(tempSet);    return set;}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.