set集合以及jdk1 8集合特性簡單說明

2022-10-09 20:15:14 字數 2089 閱讀 9449

set集合中的元素沒有先後順序且不允許重複,但不是隨機的

set集合包含:hashset類,treeset類,linkedhashset類

linkedhashset是雙向鍊錶

叫做鍊錶陣列

}列印的順序是亂的,但是沒有顯示重複的資料

setlset = new linkedhashset<>();

lset.add("one1");

lset.add("one2");

lset.add("one3");

lset.add("one4");

lset.add("one1");

system.out.println(lset);

使用linkedhashset會依次列印放入元素的順序

存放資料的原理

當需要新增乙個資料,首先呼叫hashcod(),獲取新增資料的雜湊碼值,接著呼叫雜湊演算法獲取雜湊值,接著去雜湊表中找到索引位置

當生成的索引為0時,但是0位置已經有資料了,使用新元素和22比較雜湊值是否相等,不等,插入已有元素的後面

相等的話,使用新元素呼叫equals()方法與22比較是否相等,相等則插入失敗

不相等,插入已有元素的後面

當生成的索引是2時,直接將新元素插入索引為2的位置

如何剔除物件中的重複資料

treeset集合底層是有序二叉樹,又叫紅黑樹

有序二叉樹的特徵

1.左子樹中的任意節點元素都小於根節點元素值

2.右子樹中任意節點元素都大於根節點元素值

3.左子樹和右子樹內部都遵循上述規則

system.out.println("第三次列印集合:" + students);

使用比較器排序,引用了jdk1.8特性

學習JDK1 8集合原始碼之 Stack

stack是集合中對資料結構棧的一種實現,棧的原則是先進先後出,與佇列相反 先進先出 stack是繼承自vector的,意味著它也是由陣列實現的執行緒安全的,不考慮執行緒安全的情況下完全可以用linkedlist當做棧來使用。stack的實現很簡單,核心引數和方法都繼承自vector,因為它可以呼叫...

5 03 集合框架 set集合

一 set集合概述 乙個不包含重複元素的 collection。更確切地講,set 不包含滿足e1.equals e2 的元素對e1和e2,並且最多包含乙個 null 元素。正如其名稱所暗示的,此介面模仿了數學上的 set 抽象。在所有構造方法以及 add equals 和 hashcode 方法的...

集合4 集合 Collection介面 Set介面

儲存無序的 不可重複的資料 三種實現類 注 1.set介面中沒有額外定義新的方法,使用的都是collection中宣告過的方法 2.向set中新增的資料,其所在類一定要重寫hashcode 和equals 且重寫的hashcode 和equals 盡可能保持一致 相等的物件具有相等的雜湊碼 以has...