hashset:
底層為hashmap。
步驟: 先看hashcode()值是否相同
相同:繼續走equals()方法
返回true:元素重複不新增;
返回false:元素不重複新增;
不同:就直接把元素新增到集合
如果類沒有重寫這兩個方法,預設使用object的方法,一般來說不相同.
練習:需求:儲存自定義物件,並保證元素的唯一性。
要求:如果兩個物件的成員變數值都相同,則視為同乙個物件。
通過重寫hashcode()與equals();
只有當hashcode()相同時才會進行equals()比較物件;
雜湊表是乙個元素為鍊錶的陣列,綜合了陣列和鍊錶的好處。
雜湊值與成員變數相關。
一般有提供自動生成hashcode和equals.
linkedhashset:底層資料結構由雜湊表和煉表組成。
雜湊表保證元素的唯一性,鍊錶保證元素的有序。
特點:唯一,有序。
能夠對元素按照某種規則進行排序。
排序有兩種:
1.自然排序(無參構造器預設/元素)
真正的比較依賴於元素的comparato(),而這個方法定義在comparator
元素存入treeset時需要implements comparable,重新comparato();
return 0;均相同,只存乙個;return >0 正序; return <0;倒序;
當編寫comparato()時,注意多重條件的編寫;
string預設重寫了comparato();
當獲得主要條件時,要自己分析出次要條件。
2.比較器排序(comparator/集合排序)
comparable(自然排序)
新建乙個類,實現comparator介面,重寫compare();
在呼叫時例如:treeset ts = new treeser(new mycomparator());
一般開發中用匿名內部類實現。
選擇自然排序還是比較器排序,根據的是treeset的構造方法。
Set集合概述
1 set集合 理解 1 set集合的特點 無序,唯一 2 hashset集合 掌握 a 底層資料結構是雜湊表 是乙個元素為鍊錶的陣列 b 雜湊表底層依賴兩個方法 hashcode 和equals 執行順序 首先比較雜湊值是否相同 相同 繼續執行equals 方法 返回true 元素重複了,不新增 ...
Spark概述及基礎
目錄 第一章 spark框架概述及原理 前言 一 框架組成 1.1 框架組成 1.2 應用情況 二 框架執行流程 1.簡易通用流程 2.任務劃分 總結 apache spark是乙個圍繞速度 易用性和複雜分析構建的大資料處理框架,spark提供了乙個全面 統一的框架用於管理各種有著不同性質 文字資料...
Set集合概述與hashset概述
不包含重複元素 唯一 無序 訪問順序不一致它不保證set的迭代順序,特別是它保證該順序恆久不變 底層資料結構是雜湊表 注意 雖然set集合的元素無序,但是,作為集合來說,它肯定有它自己的儲存順序,而你的順序恰好和它的儲存順序一致,這代表不了有序,你可以多儲存一些資料,就能看到效果。public cl...