Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのHashSetクラスとは?使い方とサンプルコードを解説

HashSetとは

HashSetは、AbstractSetクラスを継承し、Setインターフェースを実装したコレクションクラスです。内部的にはハッシュテーブルを使用して要素を格納します。

ハッシュテーブルは「ハッシュ化(hashing)」と呼ばれる仕組みによって情報を管理します。ハッシュ化では、キーの内容をもとに「ハッシュコード」と呼ばれる一意の値が算出されます。

このハッシュコードがインデックスとして利用され、キーに関連付けられたデータがその位置に格納されます。キーからハッシュコードへの変換は自動的に行われるため、開発者が意識する必要はありません。

HashSetの主な特徴

  • 重複した要素は格納できない
  • 要素の順序は保証されない
  • 追加・削除・検索などの基本操作が高速(平均O(1))

例1:HashSetへの要素追加

まず、JavaでHashSetを作成し、要素を追加する基本的な例を見てみましょう。

import java.util.*;
public class Demo {
   public static void main(String args[]) {
      HashSet <String> hashSet = new HashSet <String>();
      hashSet.add("One");
      hashSet.add("Two");
      hashSet.add("Three");
      hashSet.add("Four");
      hashSet.add("Five");
      hashSet.add("Six");
      System.out.println("Hash set values = "+ hashSet);
   }
}

実行結果

Hash set values = [Five, Six, One, Four, Two, Three]

出力結果を見ると、要素を追加した順序とは異なる順序で表示されています。これは、HashSetが要素の順序を保証しないためです。

例2:HashSetから要素を削除する

次に、remove()メソッドを使ってHashSetから要素を削除する例を見てみましょう。

import java.util.*;
public class Demo {
   public static void main(String args[]) {
      HashSet <String> newset = new HashSet <String>();
      newset.add("Learning");
      newset.add("Easy");
      newset.add("Simply");
      System.out.println("Values before remove: "+newset);
      boolean isremoved = newset.remove("Easy");
      System.out.println("Return value after remove: "+isremoved);
      System.out.println("Values after remove: "+newset);
   }
}

実行結果

Values before remove: [Learning, Easy, Simply]
Return value after remove: true
Values after remove: [Learning, Simply]

remove()メソッドは、指定した要素の削除に成功するとtrueを返します。存在しない要素を指定した場合はfalseが返されるため、戻り値を確認することで削除の成否を判定できます。

  1. Javaでカウンタープログラムを実装する方法をわかりやすく解説

    この記事では、JavaのSwingを使ってシンプルなカウンター(数を数える)アプリケーションを実装する方法を解説します。このプログラムでは、JLabelでカウント用のラベルを表示し、JTextFieldで現在のカウント値を保持し、JButtonで「追加(Add)」「削除(Remove)」「リセット(Reset)」の3つのボタンを作成します。 「Add」ボタンをクリックするとJTextField内のカウントが1ずつ増加し、「Remove」ボタンをクリックすると1ずつ減少します。さらに「Reset」ボタンをクリックすると、カウントは0にリセットされます。 実装例 import java.awt.*

  2. Java Swingのアーキテクチャとは?特徴とMVCモデルをわかりやすく解説

    Java Swingは、Javaプログラム向けにグラフィカルユーザーインターフェース(GUI)を提供するAPI群です。Java Swingは、それ以前のAPIであるAbstract Window Toolkit(AWT)をベースに開発されました。AWTと比べて、より豊富で洗練されたGUIコンポーネントを備えており、シンプルな部品から複雑なツリーやテーブルまで幅広く利用できます。さらに、プラグイン可能なルック&フィール(Pluggable Look and Feel)機能により、Javaプログラムの外観を基盤となるプラットフォームから独立して制御できる点も大きな特長です。 Java Swingの