Java 基礎Set集合概述及特點

2021-08-21 20:30:34 字數 1047 閱讀 1870

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...