真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

Java集合-Set-創(chuàng)新互聯

一、Set概述

java.util.Set接口和java.util.List接口一樣,同樣繼承Collection接口,它與Collection接口中的方法基本一致,并沒有對Collection接口進行功能上的擴充,只是比Collection接口更加嚴格,與List接口不同的是,Set接口中元素無序,并且都會以某種規(guī)則保證存入的元素不出現重復。

創(chuàng)新互聯建站網站建設提供從項目策劃、軟件開發(fā),軟件安全維護、網站優(yōu)化(SEO)、網站分析、效果評估等整套的建站服務,主營業(yè)務為網站制作、成都網站建設,成都app軟件開發(fā)公司以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。創(chuàng)新互聯建站深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

Set集合有多個子類,比如:java.util.HashSet、java.util.LinkedHashSet

Set特性:

  • 無序
    • 存取沒有順序
  • 無下標
    • 沒有下標,所以沒有帶下標的方法,并且也不能使用普通for循環(huán)遍歷
  • 不可以重復
    • 添加的元素不可以重復
二、HashSet

java.util.HashSet是Set接口的一個實現類,它所存儲的元素是不可重復的,并且元素都是無序的(存取順序不一致),java.util.HashSet底層的實現其實是一個java.util.HashMap支持。

HashSet是根據對象的哈希值來確定元素在集合中的存儲位置,因此具有良好的存取和查找性能,保證元素唯一性的方式依賴于:hashCodeequals方法

1、HashSet集合特點
  • 底層數據結構是哈希表
  • 存取無序
  • 不可以存儲重復元素
  • 沒有下標,所以沒有帶下標的方法,并且也不能使用普通for循環(huán)遍歷
2、入門程序

HashSet集合存儲數據

package cn.com.example11;

import java.util.HashSet;

public class HashSetClass {public static void main(String[] args) {HashSethashSet = new HashSet<>();

        hashSet.add("admin");
        hashSet.add("user");
        hashSet.add("guest");
        hashSet.add("root");

        System.out.println(hashSet);


    }

}
3、哈希值 3.1、哈希值概述

哈希值:是JDK根據對象的地址或者字符串或者數字計算出來的int類型的數據

3.2、如何獲取哈希值

Object 類中的public int hashCode():返回對象的哈希碼值

3.3、哈希值的特點
  • 同一個對象多次調用hashCode方法返回的哈希碼值是相同的
  • 默認情況下,不同對象的哈希碼值是不同的,而重寫了hashCode方法,可以實現讓不同對象的哈希碼值相同
3.4、哈希表結構

a、JDK1.8以前

底層數據結構:數組 + 鏈表

  1. 創(chuàng)建一個默認長度為16的數組
  2. 根據元素的哈希碼值與數組的長度進行運算得出存儲位置
  3. 判斷當前位置是否為null,如果為null直接存儲
  4. 如果不為null,說明有數據,通過equals比較屬性值
  5. 如果一樣,放棄存儲,如果不一樣,存入數據
  6. 新元素在老元素上面

b、JDK1.8以后

節(jié)點個數小于等于8個:

數組 + 鏈表

節(jié)點個數大于8個:

數組 + 紅黑樹

4、HashSet常用方法

和Collection一致

5、HashSet遍歷方式

和Collection一致

三、TreeSet 1、TreeSet特點
  • 不可以存儲重復元素
  • 沒有索引
  • 可以將元素按照規(guī)則進行排序
    • TreeSet():根據其元素的自然排序進行排序
    • TreeSet(Comparator comparator):根據指定的比較器進行排序
  • 底層數據結構是二叉樹,并且底層使用了TreeMap
2、入門程序
package cn.com.example11;

import java.util.TreeSet;

public class TreeSetClass {public static void main(String[] args) {TreeSettreeSet = new TreeSet<>();

        treeSet.add("admin");
        treeSet.add("user");
        treeSet.add("guest");
        treeSet.add("root");

        for (String s : treeSet) {System.out.println(s);
        }


    }

}
四、LinkedHashSet

我們知道HashSet保證元素唯一,可是元素存放進去是沒有順序的,那么我們要保證有序,可以使用HashSet的一個子類java.util.LinkedHashSet,它是鏈表和哈希表組合的一個數據存儲結構。

LinkedHashSet:元素唯一、有序

LinkedHashSet特點:底層是一個哈希表(數組+鏈表/紅黑樹) + 鏈表:多出的鏈表用于記錄元素的存儲順序,保證元素有序

package cn.com.example11;

import java.util.LinkedHashSet;

public class LinkedHashSetClass {public static void main(String[] args) {LinkedHashSetlinkedHashSet = new LinkedHashSet<>();

        linkedHashSet.add("admin");
        linkedHashSet.add("user");
        linkedHashSet.add("guest");
        linkedHashSet.add("root");
        linkedHashSet.add("admin");

        System.out.println(linkedHashSet);
    }

}

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧


標題名稱:Java集合-Set-創(chuàng)新互聯
文章地址:http://weahome.cn/article/gsgho.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部