1. 程式人生 > 其它 >Java HashSet使用方法教程及示例程式碼

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/