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

JavaでSet(セット)を反復処理するプログラムの書き方

はじめに

この記事では、JavaでSet(セット)を反復処理(イテレーション)する方法について解説します。Setは重複した要素を含むことができないコレクションであり、数学における「集合」の抽象概念をモデル化したものです。

Setインターフェースは、Collectionインターフェースから継承したメソッドのみを持ち、そこに「重複要素は禁止」という制約を追加したものになっています。

以下に具体例を示します。

想定する入力:

Input set: [Java, Scala, Mysql, Python]

期待される出力:

拡張for文によるSetの反復処理:
Java, Scala, Mysql, Python

アルゴリズム

Step 1 - 処理を開始する
Step 2 - 必要な変数を宣言する
Step 3 - 値を定義する
Step 4 - 定義した値からHashSetを作成し、「add」メソッドで要素を追加する
Step 5 - HashSetの内容をコンソールに表示する
Step 6 - HashSetの各要素を順番に取り出す
Step 7 - 取り出した値をコンソールに表示する
Step 8 - 処理を終了する

例1:拡張for文(for-eachループ)を使用する方法

この例では、すべての処理をmainメソッド内にまとめて記述します。拡張for文を使うことで、Setの各要素にシンプルかつ直感的にアクセスできます。

import java.util.Set;
import java.util.HashSet;
public class Demo {
   public static void main(String[] args) {
      System.out.println("必要なパッケージをインポートしました");
      Set<String> input_set = new HashSet<>();
      input_set.add("Java");
      input_set.add("Scala");
      input_set.add("Python");
      input_set.add("Mysql");
      System.out.println("セットの内容: " + input_set);
      System.out.println("\n拡張for文によるSetの反復処理:");
      for(String elements : input_set) {
         System.out.print(elements);
         System.out.print(", ");
      }
   }
}

出力結果

必要なパッケージをインポートしました
セットの内容: [Java, Scala, Mysql, Python]

拡張for文によるSetの反復処理:
Java, Scala, Mysql, Python,

例2:メソッドに処理をカプセル化する方法

この例では、反復処理のロジックを独立したメソッドとして切り出し、オブジェクト指向プログラミングらしい構造で記述します。これにより、コードの再利用性と可読性が向上します。

import java.util.Set;
import java.util.HashSet;
public class Demo {
   static void print_set(Set<String> input_set){
      System.out.println("\n拡張for文によるSetの反復処理:");
      for(String elements : input_set) {
         System.out.print(elements);
         System.out.print(", ");
      }
   }
   public static void main(String[] args) {
      System.out.println("必要なパッケージをインポートしました");
      Set<String> input_set = new HashSet<>();
      input_set.add("Java");
      input_set.add("Scala");
      input_set.add("Python");
      input_set.add("Mysql");
      System.out.println("セットの内容: " + input_set);
      print_set(input_set);
   }
}

出力結果

必要なパッケージをインポートしました
セットの内容: [Java, Scala, Mysql, Python]

拡張for文によるSetの反復処理:
Java, Scala, Mysql, Python,

その他の反復処理の方法

拡張for文以外にも、java.util.Iteratorを使用した反復処理や、Java 8以降で利用可能なStream APIのforEachメソッド(input_set.forEach(System.out::println);のように記述)でも同様の処理を実現できます。用途やコードのスタイルに応じて使い分けるとよいでしょう。

まとめ

本記事では、JavaのSetを反復処理する方法として、拡張for文(for-eachループ)を使った2つのサンプルコード――mainメソッド内に直接記述する方法と、専用メソッドにカプセル化する方法――を紹介しました。Setは重複を許さないコレクションのため、ユニークなデータを管理したい場合に非常に有用です。ぜひ実際にコードを書いて動作を確認してみてください。


  1. JavaのJSliderでエクステント(extent)を設定する方法

    SwingのJSliderでは、スライダーのエクステント(extent)を設定するためにsetExtent()メソッドを使用します。エクステントとは、スライダーのつまみ(ノブ)がカバーする範囲のサイズのことで、この値を設定すると、ユーザーはスライダーをその範囲以上に移動できなくなります。setExtent()メソッドの基本的な使い方以下のように、JSliderオブジェクトに対してsetExtent()メソッドを呼び出すだけで、エクステントを設定できます。JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 70); slider.se

  2. 【Python入門】セット(set)を反復処理する5つの方法を徹底解説

    この記事では、Python 3.xにおけるセット(set)データ型の反復処理(走査)の方法について詳しく解説します。セットとは、重複を許さない要素の順序なしコレクションです。すべての要素を波括弧 {} で囲むことで作成できるほか、set() を使った型キャストによっても生成できます。ここでは、セットを反復処理するための5つの異なる手法をコード例とともに紹介します。方法1:インデックスを使わずにforループで反復処理する最も基本的な方法です。セットはそのままイテラブル(反復可能)なオブジェクトなので、forループに直接渡すことができます。set_inp = {t,u,t,o,r,i,a,l,s,