1. 程式人生 > >【java集合系列】---HashSet

【java集合系列】---HashSet

在前面的博文中,小編主要簡單介紹了java集合中的總體框架,以及list介面中典型的集合ArrayList和LinkedList,接著,我們來看set的部分集合,set集合和數學意義上的集合沒有差別,作為集合,可以容納多個元素,而且,集合裡面沒有重複的元素,Set集合是Collection的子集,Set集合與Collection基本相同,沒有提供任何額外的方法,只是Set不允許包含重複的元素,今天這篇博文小編主要介紹Set集合中的HashSet,小編會通過簡單的demo來介紹set集合的特點,以及equals和hashCode方法,最後看一下HashSet的底層原始碼以及與hashMap的對比`(*∩_∩*)′,請小夥伴們多多指教`(*∩_∩*)′。我們知道Set的集合是無序、不可重複的集合,首先,我們來看一下HashSet,HashSet是set集合中用的最多的,so,我們來看下面的一個小例子:

package j2se.demo;

import java.util.HashSet;

public class SetTest1 {
	public static void main(String[] args) {
			
		HashSet set = new HashSet();
		
		set.add("a");
		set.add("b");
		set.add("c");
		set.add("d");
		
		System.out.println(set);
		
	}

}
        執行如下所示:

        

        通過這個例子我們可以看出來集合的第一個特點,無序,我們新增的時候,順序是abcd,出來的時候是dbca,這是集合的第一個特點;我們再向集合裡面新增一個a,如下所示:

package j2se.demo;

import java.util.HashSet;

public class SetTest1 {
	public static void main(String[] args) {
			
		HashSet set = new HashSet();
		
		set.add("a");
		set.add("b");
		set.add("c");
		set.add("d");
		set.add("a");
		
		System.out.println(set);
		
	}

}
       執行效果如下所示:

       

       我們來看一下,到底是誰沒有新增進去呢?編寫相關程式碼,如下所示:

package j2se.demo;

import java.util.HashSet;

public class SetTest1 {
	public static void main(String[] args) {
			
		HashSet set = new HashSet();
		
		System.out.println(set.add("a"));
		set.add("b");
		set.add("c");
		set.add("d");
		System.out.println(set.add("a"));
		
		System.out.println(set);
		
	}

}
        執行如下所示:

        

相關推薦

java集合系列---HashSet

在前面的博文中,小編主要簡單介紹了java集合中的總體框架,以及list介面中典型的集合ArrayList和LinkedList,接著,我們來看set的部分集合,set集合和數學意義上的集合沒有差別,作為集合,可以容納多個元素,而且,集合裡面沒有重複的元素,Set集合是Col

Java集合系列 總體框架

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Java集合系列 總體框架

根據上面的類圖,我們可以把java的所有集合分成三大類,其中Set集合類類似於一個糖罐子,把一個物件新增到Set集合裡面的時候,Set集合無法記住新增這個元素的順序,所以Set裡面的元素不能重複,否則系統無法準確識別這個元素;List集合非常像一個數組,她可以記住每次新增元素的順序,可以重複,只是List的長

Java集合系列---總體框架

集合--童年的美好時光集合,忽然讓小編想起那段美好的學生時光,集合第一次遇見她的時候,小編當年還是一個懵懂的丫頭,也不曾想過會在計算機的世界再次相遇,再回首,集合在數學中是一個基本概念,集合就是“一堆東

Java集合系列HashSet和LinkedHashSet解析

inpu skin lam 繼承 depend try put args port 2017-07-29 16:58:13 一、簡介 1、Set概念 Set可以理解為集合,非常類似數據概念中的集合,集合三大特征:1、確定性;2、互異性;3、無序性,因此Set實現類也有類似的

深入學習java集合系列LinkedHashMap的底層實現

最近寫到LeetCode上的某一題LRUCache。可以採用LinkedHashMap實現,通過重寫removeEldestEntry方法,即可實現。 LinkedHashMap map; public LRUCache(int capacity) {

Java入門系列垃圾回收

通過 解決 roots java入門 算法 無限 不可用 但是 搜索 垃圾回收 如果不進行垃圾回收,內存遲早都會被消耗空,因為我們在不斷的分配內存空間而不進行回收。除非內存無限大,我們可以任性的分配而不回收,但是事實並非如此。 垃圾回收其實做了兩件事:1、發現無用的對象;2

Java入門系列this關鍵字

span 相同 成員變量 pan 代碼 由於 stat spa pre 學習this關鍵字之前,先來看下對象創建的過程 1、分配對象空間,並將對象成員變量初始化為0或空 2、執行屬性值的顯示初始化 3、執行構造方法 4、返回對象的地址給相關的變量 本質 this關鍵字的本質

Java入門系列static關鍵字

既然 生命 不依賴 影響 能夠 情況下 思想 static 程序 static方法就是沒有this的方法。在static方法內部不能調用非靜態方法,反過來是可以的。而且可以在沒有創建任何對象的前提下,僅僅通過類本身來調用static方法。這實際上正是static方法的主要用

java集合框架SDUT 3360 學生資訊的新增與查詢

Problem Description 設計一個學生新增和查詢的系統,從鍵盤讀入學生的資料,然後再從螢幕顯示出來。 Input 第一行有2個整數N和M,其中:N——學生數量,M——學生屬性數量; 第二行有M個字串,表示學生的屬性名稱,其中第1個屬性id表示關鍵字;其中各欄位屬性的資料型別

Java集合LinkedList原始碼分析(jdk1.8)

ArrayList和LinkedList是List介面的兩種實現,具有相同的查詢、插入、刪除操作,只是底層的實現方式不一樣。LinkedList是以雙向連結串列形式實現的集合類。 其增刪操作由於不需要移

Java集合 LinkedHashMap(有序的map)獲取第一個元素和最後一個元素

獲取LinkedHashMap中的頭部元素(最早新增的元素): 時間複雜度O(1) public <K, V> Entry<K, V> getHead(LinkedHashMap<K, V> map) { retu

Java集合框架Map與Set的有序與無序

Set本身不保證順序/* * HashSet是無序的; LinkedHashSet是按插入順序的; TreeSet是按升序的; * * HashMap是無序的;LinkedHashMap是按插

Java重構系列重構31式之搬移方法

重構第二式:搬移方法 (Refactoring 2: Move Method)       毋容置疑,搬移方法(Move Method)應該是最常用的重構手段之一,正因為太常用而且較為簡單,以至於很多人

Java Opencv系列4.3讀取攝像頭並顯示

程式碼如下: package imageIO; import java.awt.EventQueue; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import org.open

java開發系列— JDOM建立、修改、刪除、讀取XML檔案

有很多中操作XML檔案的方法,這裡介紹一下JDOM的使用方法和技巧。 建立XML文件 XML檔案是一種典型的樹形檔案,每個文件元素都是一個document元素的子節點。而每個子元素都是一個Element物件,物件可以向下包含。 1 因此我們可以通過先建立元素再將元

Java 集合Hashtable和HashMap、Vector和ArrayList,來說說

環境: jdk1.8 這兩類(4個類)的比較經常出現在面試中: 解決思路:看原始碼 1.Hashtable和HashMap 1.Hashtable(注意table小寫)裡為了保證

java集合根介面Collection、Map

       Java集合類是一種非常實用的工具類,主要用於儲存、盛裝其它資料(集合裡只能儲存物件),因此集合類也被成為容器類。所有的集合類都位於java.util包下,在java.util.concurrent下還提供了一些支援多執行緒的集合類。Java的集合類主要由兩

HashSet的使用Java集合

建立 public HashSet() // 預設建構函式 public HashSet(Collection<? extends E> c) // 帶集合的建構函式 public HashSet(int initialCapacity,float load

專欄 - Java集合系列專欄

其實我想要   一種美夢睡不著   一種心臟的狂跳   瓦解界線不被撂倒 奔跑 依靠   我心中最想要   看你看過的浪潮   陪你放肆地年少   ——林俊杰【偉大的渺小】 ------------