Java_基礎Set集合概述及特點
Collection
List 有序,可重複.
Set 無序,唯一.
HashSet:
底層為HashMap。
步驟: 先看hashCode()值是否相同
相同:繼續走equals()方法
返回true:元素重複不新增;
返回false:元素不重複新增;
不同:就直接把元素新增到集合
如果類沒有重寫這兩個方法,預設使用object的方法,一般來說不相同.
練習:
需求:儲存自定義物件,並保證元素的唯一性。
要求:如果兩個物件的成員變數值都相同,則視為同一個物件。
通過重寫hashCode()與equals();
只有當hashCode()相同時才會進行equals()比較物件;
雜湊表是一個元素為連結串列的陣列,綜合了陣列和連結串列的好處。
雜湊值與成員變數相關。
一般有提供自動生成hashCode和equals.
LinkedHashSet:底層資料結構由雜湊表和連結串列組成。
雜湊表保證元素的唯一性,連結串列保證元素的有序。
TreeSet
特點:唯一,有序。
能夠對元素按照某種規則進行排序。
排序有兩種:
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的構造方法。
相關推薦
Java_基礎Set集合概述及特點
Collection List 有序,可重複. Set 無序,唯一. HashSet: 底層為HashMap。 步驟: 先看hashCode()值是否相同
集合框架_Set集合概述及特點
package cn.itcast_01; import java.util.HashSet; import java.util.Set; /* * Collection * |--Lis
java基礎——2——集合概述
Java的集合類主要由兩個介面派生而來:Collection和Map。Collection和Map是Java集合框架的根介面,這兩個介面又包含了一些子介面或實現類。 Set集合 Set集合是Collection集合的子類,與Collection基本上完全一樣,它沒有提供額外的方法,
繼承的概述及特點,方法重寫的應用場景&注意事項
第1章 繼承 1.1 繼承的概述 在現實生活中,繼承一般指的是子女繼承父輩的財產。在程式中,繼承描述的是事物之間的所屬關係,通過繼承可以使多種事物之間形成一種關係體系。 1.2 繼承的格式&使用 在程式中,如果想宣告一個類繼承另一個類,需要使用extends關鍵字。 格式
Redis 之set集合結構及命令詳解
注:集合的元素具有唯一性,無序性 1、sadd key value1 value2 新增一個集合 2、smembers key 獲取一個集合的所有值 3、srem key valu
Map、Set、List集合差別及聯系詳解
特性 互轉 字母順序 時也 參數 很慢 未定義 諸多 cto 提到集合之前,先說說數組Array和集合的區別: (1)數組是大小固定的,並且同一個數組只能存放類型一樣的數據(基本類型/引用類型) (2)JAVA集合可以存儲和操作數目不固定的一組數據。 (
Python 基礎 - Day 2 Learning Note - Set 集合
基礎 差集 可變集合 自動 lap 完全 添加 key值 com 集合是一個無序的,不重復的數據組合,它的主要作用如下: 去重,把一個列表變成集合,就自動去重了 關系測試,測試兩組數據之前的交集、差集、並集等關系 SET的分為 可變集合 和 不可變集合(frozon se
python基礎:集合-set()
集合一、定義:集合是一個無序的,沒有重復元素的序列。可以用來去重。使用{},和set()定義空集必須使用set()來定義可以set任何可叠代的對象string = ‘this is string!‘ num = range(1, 11) list = [2, 4, 6, 8, 10,11, 12 ] set
list,map,set集合的基本用法及差異
nbsp htable body 根據 pos null clas 速度 就是 List:1.可以允許重復的對象。 2.可以插入多個null元素。 3.是一個有序容器,保持了每個元素的插入順序,輸出的順序就是插入的順序。 4.常用的實
Set集合基礎
con 一起 聯動 開始 指定 不同 但是 增刪改查 val 關於hashCodehashSet的使用簡單的來說,就是,如果兩個對象的所有值都相同(hashCode值相同),那麽就開始判斷equals方法是否為false,如果為false就判定這兩個對象不是重復的,如果為t
7.set集合,深淺拷貝及補充
In 完成 過程 set集合 更新 兩個 淺拷貝 fromkeys dict 本節主要內容:1. 基礎數據類型補充2. set集合3. 深淺拷?貝主要內容:?一. 基礎數據類型補充?首先關於int和str在之前的學習中已經講了了80%以上了了. 所以剩下的?自?己看?一看就
java基礎之JDBC一:概述及步驟詳解
etx fileread 操作 [] 全路徑 api mysql edi lean 1. JDBC的簡介 概述: 就是Java用來操作不同數據庫(DBMS)的類庫(技術), 本質就是一些類和接口. /* 類: Dri
Python基礎之集合set
n) true 列表 之間 4.4 自動 去重 bar 可變集合 集合是無序的,不重復的數據集合,它裏面的元素是可哈希的(不可變類型), 但是集合本身是不可哈希的(所以集合做不了字典的鍵)的。 以下是集合最重要的兩點: (1)去重,把一個列表變成集合,就自動去重了。 (2)
Python基礎-----函數式編程含義及特點(及尾遞歸)
優化 北京 棧溢出 括號 int global 不一定 傳遞 需要 一、定義 函數式就是用編程語言去實現數學函數。這種函數內對象是永恒不變的,要麽參數是函數,要麽返回值是函數,沒for和while循環所有的循環都由遞歸去實現,無變量的賦值(即不用變量去保存狀態),無賦
python基礎—基本資料型別二(set 集合,深淺拷貝)
1、基礎資料型別彙總補充 str int list bool dict tuple 2、集合 set {} 可變的資料型別,(不可雜湊)裡面的元素必須是不可變的資料型別,無序,不重複 以下是集合最重要的兩點: 去重,把一個列表變成集合,就自動去重了。 關係測試,測試兩組資料之前的
Python基礎(八)之 set 集合
全部測試程式碼 #!/usr/bin/env python3 #_*_ conding:utf-8 _*_ #set是一組key的集合,但是沒有重複的key,重複的值自動被過濾 # 建立一個set,以list作為輸入集合,輸出的資料用大括號{}顯示,且是無序的 s=set([1
jQuery基礎—1、jQuery概述及環境搭建
1.1JQuery是什麼? jQuery在javascript基礎上開發出來的,對javascript進行了封裝,功能更強大,操作更方便的一種javascript庫。 JQuery=Javascript + Query(查詢)= 通過Javascript從文件中查詢元素,並對其進行操作。
python基礎:集合(set)字典(direction)介紹
三、字典(dict) 1.字典的建立賦值建立字典In [2]: d = {1,True,"hello"} In [3]: type(d)Out[3]: set #字典由key和value構成,一個key對應一個value,key-value , 鍵值對In [4]: d = {1:"freya",2:"
Scala實戰高手****第6課 :零基礎實戰Scala集合操作及Spark源碼解析
應用程序 元素 如果 掌握 說明 例如 log 方法 線程 本課內容1.Spark中Scala集合操作鑒賞2.Scala集合操作實戰 ----------------------------------------------------------------------
python 基礎 -06 set集合,深淺拷⻉
set集合是python的⼀個基本資料型別. ⼀般不是很常⽤. set中的元素是不重複的.⽆序的.⾥⾯的元素必須是可hash的(int, str, tuple,bool), 我們可以這樣來記. set就是dict型別的資料但是不儲存value, 只儲存key. set也⽤{}表⽰ 注意: set集合中的元素