1. 程式人生 > >Java_基礎Set集合概述及特點

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集合中的元素