ホーム > Java > 第11章-4 Set

Java -Set-

Setの利用

Setは、ユニーク(重複のない)値のコレクションです。

Setインタフェースの主なメソッド
メソッド 説明
boolean add(E e) 指定された要素がセット内になかった場合、セットに追加します。
void clear() セットからすべての要素を削除します。
boolean contains(Object o) セットが、指定された要素を保持している場合に true を返します。
Iterator<E> iterator() セット内の各要素についての反復子を返します。
boolean remove(Object o) 指定された要素がセット内にあった場合、セットから削除します 。
int size() セット内の要素数を返します。
Object[] toArray() セット内のすべての要素が格納されている配列を返します。
<T> T[] toArray(T[] a) セット内のすべての要素を格納している配列を返します。
String型のSetの例

Set <String> set = new HashSet <String> ();

 ※ArrayList同様にコレクションフレームワークを利用する場合は、このようにインタフェースで受けることが一般的です。

HashSet サンプル1

import java.util.HashSet;
import java.util.Set;
public class SetSample1 {
  public static void main(String[] args) {
    Set<String> set=new HashSet<String>();
    set.add("東京");
    set.add("大阪");
    set.add("福岡");
    set.add("大阪");

    for(String item:set){
      System.out.println(item);
    }
  }
}

実行結果

  大阪
  東京
  福岡

※ 大阪を重複で登録できません。

Set実装クラスの機能比較

Setの代表各は、HashSetです。
これに対して、LinkedHashSetは格納順を覚えているSetです。
また、TreeSetは、自然順序など何らかの順序で整列しているSetです。

Setサンプル2-1(HashSetの場合)

import java.util.HashSet;
import java.util.Set;

public class SetSample2_1 {
  public static void main(String[] args) {
    Set<String> set=new HashSet<String>();
    set.add("お");
    set.add("え");
    set.add("う");
    set.add("い");
    set.add("あ");
    
    for(String str:set){
      System.out.println(str);
    }
  }
}

実行結果

  う
  い
  あ
  お
  え
	
    ※ 出力結果はランダムになります。

Setサンプル2-2(LinkedHashSetの場合)

import java.util.LinkedHashSet;
import java.util.Set;

public class SetSample2_2 {
  public static void main(String[] args) {
    Set<String> set=new LinkedHashSet<String>();

    set.add("お");
    set.add("え");
    set.add("う");
    set.add("い");
    set.add("あ");
    
    for(String str:set){
      System.out.println(str);
    }
  }
}

実行結果

  お
  え
  う
  い
  あ
	
	 ※ 出力結果は入力順になります。

Setサンプル2-3(TreeSetの場合)

import java.util.Set;
import java.util.TreeSet;

public class SetSample2_3 {
  public static void main(String[] args) {
    Set<String> set=new TreeSet<String>();

    set.add("お");
    set.add("え");
    set.add("う");
    set.add("い");
    set.add("あ");
    
    for(String str:set){
      System.out.println(str);
    }
  }
}

実行結果

  あ
  い
  う
  え
  お
	
	  ※ 出力結果は辞書順になります。
Copyright © 2018   MitoRoid  All Rights Reserved.