Java HashSet使用方法教程及示例代碼


簡介

HashSet類,是存在於java.util包中的類 。同時也被稱為集合,該容器中只能存儲不重復的對象。本文主要介紹Java HashSet使用方法教程及示例代碼,還有HashMap和HashSet的區別。

1、Java HashSet

HashSet實現了Set接口,它不允許集合中有重復的值,當將對象存儲在HashSet之前,要先確保對象重寫equals()和hashCode()方法,這樣才能比較對象的值是否相等,以確保set中沒有儲存重復的對象。如果我們沒有重寫這兩個方法,將會使用這個方法的默認實現。

例如

創建一個名為langs的HashSet對象,該對象將存儲字符串:

import java.util.HashSet; // 導入HashSet

HashSet<String> langs = new HashSet<String>();

2、訪問HashSet中的元素

HashSet類具有許多有用的方法。 例如,要向其中添加元素,請使用add()方法:

例如

// 導入HashSet
import java.util.HashSet;

public class Main {
  public static void main(String[] args) {
    HashSet<String> langs = new HashSet<String>();
    langs.add("c");
    langs.add("java");
    langs.add("python");
    langs.add("cjavapy");
    langs.add("javascript");
    System.out.println(langs);
  }
}

注意:集合中的每個元素都必須是唯一的。

3、判斷HashSet中的元素

要判斷HashSet中是否存在某個元素,請使用contains()方法:

例如:

langs.contains("cjavapy");

4、刪除HashSet中的元素

要刪除元素,請使用remove()方法:

例如:

langs.remove("cjavapy");

要刪除所有元素,請使用clear()方法:

例如:

langs.clear();

 

5、HashSet size

要找出有多少個元素,需要使用size方法:

例如:

langs.size();

 

6、循環遍歷HashSet中的元素

通過for-each循環遍歷HashSet的元素:

例如:

for (String i : langs) {
  System.out.println(i);
}

 

7、其它類型

HashSet中的項目實際上是對象。在上面的示例中,我們創建了 項目 (對象)類型為字符串。Java中的String是一個對象(不是原始類型)。要使用其他類型,例如int,必須指定等效的包裝類:Integer。對於其他基本類型,請使用:Boolean表示布爾值,Character表示char,Double表示double,等等。

基本類型對應的包裝類表如下:

 

基本類型

引用類型

boolean

Boolean

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

char

Character

 

例如:

使用存儲Integer對象的HashSet

import java.util.HashSet;

public class Main {
  public static void main(String[] args) {

    // 創建HashSet對象 
    HashSet<Integer> numbers = new HashSet<Integer>();

    // 添加
    numbers.add(4);
    numbers.add(5);
    numbers.add(8);

    // 判斷指定值是否包含
    for(int i = 1; i <= 10; i++) {
      if(numbers.contains(i)) {
        System.out.println(i + " 存在numbers中");
      } else {
        System.out.println(i + " 存在numbers中");
      }
    }
  }
}
 

 

8、HashMap和HashSet的區別

1) HashSet實現了Set接口, 僅存儲對象; HashMap實現了 Map接口, 存儲的是鍵值對.

2) HashSet底層其實是用HashMap實現存儲的, HashSet封裝了一系列HashMap的方法. 依靠HashMap來存儲元素值,(利用hashMap的key鍵進行存儲), 而value值默認為Object對象. 所以HashSet也不允許出現重復值, 判斷標准和HashMap判斷標准相同, 兩個元素的hashCode相等並且通過equals()方法返回true。

 

HashMap

HashSet

HashMap實現了Map接口

HashSet實現了Set接口

HashMap儲存鍵值對

HashSet僅僅存儲對象

使用put()方法將元素放入map中

使用add()方法將元素放入set中

HashMap中使用鍵對象來計算hashcode值

HashSet使用成員對象來計算hashcode值,

對於兩個對象來說hashcode可能相同,

所以equals()方法用來判斷對象的相等性,

如果兩個對象不同的話,那么返回false

HashMap比較快,因為是使用唯一的鍵來獲取對象

HashSet較HashMap來說比較慢

 

 

 原文地址:https://www.cjavapy.com/article/1624/

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM