set集合 范型

2021-10-23 16:50:59 字數 2202 閱讀 7354

set全部繼承sollection

set集合特點:

不包含重複元素的集合

沒有帶索引的方法,所以不能使用普通for迴圈便利

set是乙個介面,不能直接被例項化,hashset可把set例項化

hashset對集合的迭代順序不做任何保證

雜湊值:

是jdk根據物件的位址或者字串或者陣列算出來的int型別的數值

object類中有乙個方法可以獲取物件的雜湊值

public int hashcode():返回物件的雜湊碼值

同乙個物件呼叫hashcode值是一樣的

預設情況下,不同的物件呼叫hashcode值不是一樣的,但是通過方法重寫,可以實現不同物件的雜湊值是相同的

hashset集合概述和特點

是set介面的實現類

底層資料結構是雜湊表

對集合的迭代順序不作任何保證,就是說不能保證儲存和取出的元素順序一致

沒有索引的方法,所以不能使用普通的for迴圈

由於是set集合,所以是不包含重複元素的集合

hashset保持元素唯一性的原始碼分析

雜湊表:

是乙個陣列

范型的本質是引數化型別,也就是說將型別由原力啊的具體的型別引數化,然後再使用/呼叫時傳入具體的型別

這種引數可以用在類、方法、和介面中,分別被稱為范型類、范型方法、范型介面

定義格式:

《型別》:指的一種型別的根底。這裡可以看成是形參

《型別1,型別2…>:指定多種型別的格式,多種型別之間用逗號隔開。這裡的型別可以看成是形參

將來具體呼叫時侯給定的型別可以看成是實參,並且實參的型別只能是引用資料型別

范型的好處:

把執行期間的問題提前到了變異期間

避免了強制型別轉換

范型類:

public class generic

public void sett(t t) }

呼叫:generic g1=new generic();

g1.sett(「liulianlian」);

system.out.println(g1.gett());

generic g2=new generic();

g2.sett(18);

system.out.println(g2.gett());

范型方法:

例如:public void show(t t){}

public class generic

}呼叫:

genergic g=new generic();

g.show(「liulianlian」);

g.show(10);

范型介面:

例如:public inte***ce generic{}

型別萬用字元:>

list>:表示元素型別未知的list,他的元素可以匹配任何的型別

這種帶萬用字元的list僅僅表示它是各種范型list的父類,並不能把元素新增到其中。

如果我們不希望list>是任何范型list的父類,可以使用型別萬用字元的上限。

型別萬用字元的上限:<?extends型別 》

list<?extends number>:他表示的型別是number或者其子型別

除了可以指定型別萬用字元的上限,我們也可以指定萬用字元的下限

型別萬用字元下限: super型別》

list super number>:他表示的型別是number或者其父型別

可變引數:

public static int sun(int …a)

可變引數的使用:

arrays工具類中有乙個靜態方法:

public static listaslist(t…a):返回由指定陣列支援的固定大小的列表

返回的集合不能進行增刪操作,可以做修改操作

list介面中有乙個靜態方法:

public static listof(e…elements):返回包含任意數量元素的不可變列表

返回的集合不能做增刪改操作

list介面中有乙個靜態方法:

public static setof(e…elements):返回乙個包含任意數量元素的不可變集合

在給元素的時候,不能給重複的元素

返回的集合不能做增刪操作,沒有修改的方法

第16周 范型程式補充之set用法

include include include includeusing namespace std int main seteg1 插入 eg1.insert 1 eg1.insert 100 eg1.insert 5 eg1.insert 1 元素1因為已經存在所以set中不會再次插入1 eg1...

STL泛型程式設計 set集合容器

set集合容器實現了紅黑樹 red blacktree 的平衡二叉檢索樹的資料結構,在插入元素時,它會自動調整二叉樹,把該元素放到適當的位置,以確保每個子樹根節點的鍵值大於左子樹所有節點的鍵值,而小於右子樹所有節點的鍵值 另外,確保左右子樹的高度相等,這樣,二叉樹的高度最小,從而檢索速度最快。不會重...

Set集合 排序 泛型 可變參

set集合的基本使用 public class setdemo 獲取雜湊值的 public class student public student string name,int age public string getname public void setname string name p...