set集合中的元素沒有先後順序且不允許重複,但不是隨機的
set集合包含:hashset類,treeset類,linkedhashset類
linkedhashset是雙向鍊錶
叫做鍊錶陣列
}列印的順序是亂的,但是沒有顯示重複的資料
setlset = new linkedhashset<>();使用linkedhashset會依次列印放入元素的順序lset.add("one1");
lset.add("one2");
lset.add("one3");
lset.add("one4");
lset.add("one1");
system.out.println(lset);
存放資料的原理
當需要新增乙個資料,首先呼叫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...