JAVA集合框架:[16]set集合知識點

set:元素不可重複,是無序的。

set接口和collection方法一致

|--HashSet:內部結構是哈希表,是不同步的。

如何保證該集合的元素唯一性呢?

通過對象的hashcode和equals方法來完成對象唯一性的。

如果對象的hashcode值不同,那麼不用判斷equals方法,就直接存儲到哈希表中。

如果對象的hashcode值相同,那麼要再次判斷對象的equals方法是否為true。

如果為true,視為相同元素,不存,如果為false,那麼視為不同元素,就進行存儲。

注意:如果元素要存儲到hashset集合中,必須覆蓋hashcode方法和equals方法

一般情況下,如果定義的累會產生很多對象,比如人、學生、書,通常都需要覆蓋equals、hashcode方法,建立對象判斷是否相同的依據。

|--TreeSet可以對set集合中的元素進行排序。是不同步的

if(this.hashcode()==obj.hashcode && this.equals(obj))

相關文章

  1. JAVA集合框架:[26]泛型知識點

    泛型: jdk1.5出現的安全機制 好處: 1,將運行時期的問題classcastexception轉到了編譯時期 2,避免了強制轉換的麻煩 <>:什麼時候用?當操作的引用數據類型不確定的 ...
  2. JAVA集合框架:[11]集合的知識點大雜燴

    /**集合類的由來: 對象用於封裝特有數據,對象多了需要存儲,如果對象的個數不確定, 就使用集合容器進行存儲. 集合的特點: 1.用於存儲對象的容器 2.集合的長度可變 3,集合不可以存儲基本數據類型 ...
  3. JAVA集合框架:[32]集合知識點2

    set:元素不可重複,是無序的. set接口和collection方法一致 |--HashSet:內部結構是哈希表,是不同步的. 如何保證該集合的元素唯一性呢? 通過對象的hashcode和equal ...
  4. JAVA集合框架:[31]集合三大容器介紹一

    知識點: collection 三大容器:list set map list: vector arraylist linkedlist set: hashset  treeset linkedhash ...
  5. JAVA集合框架:[19]哈希表知識點

    哈希表確定元素是否相同 1.判斷的是兩個元素的哈希值是否相同, 如果相同,再判斷兩個對象的內容是否相同. 2.判斷哈希值相同,其實判斷的是對象的hashCode的方法, 判斷內容相同,用的是equal ...
  6. JAVA集合框架:[21]map案例一

    map案例代碼: ①: import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import ...
  7. JAVA集合框架:[61]UDP的服務端編寫

    package net1; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSo ...
  8. JAVA集合框架:[40]arraylist知識

    import java.util.ArrayList; import java.util.Iterator; /** * 熟悉兩個快捷鍵:shift+ctrl+s,快捷創建構造函數等 * shift+ ...
  9. JAVA集合框架:[6]字符串計數練習題

    public class Count { /** * @param args * * 一個字串在整串中出現的次數 * "nbaernbatynbauinbaopnba" * 思路: ...
  10. JAVA集合框架:[24]map練習題

    import java.util.Map; import java.util.TreeMap; import java.util.Iterator; public class Treemap { pu ...
  11. JAVA集合框架:[44]流的需求分析案例

    需求1:複製一個文本文件 ①明確源和目的:源:inputstream reader.目的:outputstream writer ②是否是純文本?是!源:reader.目的:writer ③明確具體設 ...
  12. JAVA集合框架:[28]泛型案例2

    public class Jk { /** * @param args */ public static void main(String[] args) { // TODO Auto-generat ...
  13. JAVA集合框架:[36]linklist練習

    ④LinkList import java.util.LinkedList; /** * addFirst(); * addLast(); * * * * getFirst();//獲取但不移除,如果 ...
  14. JAVA集合框架:[22]map案例二

    import java.util.HashMap; import java.util.Iterator; public class mapdemo2 { public static void main ...
  15. JAVA集合框架:[13]List集合

    List集合是可以完成對元素的增刪改查 List: |--Vector:內部是數組數據結構,是同步的.增刪,查詢都很慢 |--ArrayList:內部是數組數據結構,是不同步的,替代了Vector.查 ...
  16. JAVA集合框架:[63]正規表達式練習

    package Test; public class Test1 { public static void main(String[] args) { // TODO Auto-generated m ...
  17. JAVA集合框架:[60]UDP傳輸的客戶端簡易編寫

    package net1; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamR ...
  18. JAVA集合框架:[18]list常用方法

    import java.awt.List; import java.util.ArrayList; import java.util.Arrays; public class list {//list ...
  19. JAVA集合框架:[39]hashset集合練習題

    ⑥hashset import java.util.HashSet; import java.util.Iterator; import javax.swing.text.html.HTMLDocum ...
  20. JAVA集合框架:[10]stringBuilder練習題

    import org.omg.CORBA.PUBLIC_MEMBER; public class Builder { /** * @param args */ public static void m ...