OR
誰でも自由に記事を投稿・編集できるオープンリファレンス
記事ID:685
区分:プログラム  |  分類:Java  |  最終更新日:2015/07/10
クリエイティブ・コモンズ 表示-継承ライセンス 2.1
【Java】TreeSetの基本操作
関連タグ:Java, コレクション, 配列, Set, TreeSet
このエントリーをはてなブックマークに追加      
本文
履歴
編集
閲覧数: 8,257
Java関連技術まとめ > 【Java】TreeSetの基本操作

java.util.TreeSetは要素の検索に二分探索木を用いたjava.util.Setの実装クラスになります。HashSet同様、値の重複を許可しない集合を管理するためのクラスになります。利用できるメソッドもHashSetと共通ですが、違う点としてTreeSetは要素を自動でソートし、各要素の並び順を保持します。また、HashSetでは許可されていたnull値はTreeSetでは使用できません。

 

TreeSetクラスの特長と主要メソッド

【クラスの特長】

クラス要素の重複nullの挿入自動ソート
java.util.TreeSet 不可 不可 あり

 

【クラスの主要メソッド】

戻り値メソッド説明
boolean add(Object e)

セットに要素eを追加します。

要素eが既にセット内に存在する場合はfalseを返します。

void clear() セットの全ての要素を削除します。
boolean contains(Object e) セットに要素eが含まれているかを判定します。
boolean isEmpty() セットが空かどうかを判定します。
boolean remove(Object e)

要素eをセットから削除します。

要素eがセット内に存在しない場合はfalseを返します。

int size()

セットの要素数を返します。

TreeSetを生成する

TreeSetオブジェクトはnew演算子を使用して以下のように生成します。

 

【JDK1.5以降】

TreeSet<型> 変数名 = new TreeSet<型>();

 

上記方法での生成は、ジェネリクス機能が導入されたJ2SE5.0(JDK1.5)以降に可能です。それ以前の古いバージョンでは、以下の方法で生成します。

 

TreeSet 変数名 = new TreeSet();

TreeSetにデータを追加する

TreeSetオブジェクトにデータを追加する場合は、addメソッドを使用します。

 

TreeSet<String> ts = new TreeSet<String>();

ts.add("Google");
ts.add("Apple");
ts.add("Microsoft");

 

addメソッドはセットに該当の要素が含まれていない場合に要素を追加します。上記例ではTreeSetオブジェクトに3つの要素が追加されますが、順序は保持されませんので、要素は必ずしも追加した順とはなりません。

TreeSetに任意のデータが含まれているか調べる

TreeSetオブジェクトに任意のデータが含まれているかどうかを調べる場合は、containsメソッドを使用します。

 

if (ts.contains("Apple")) {
    System.out.println("セットにAppleは含まれます。");
}

 

containsメソッドはセットに指定の要素が含まれている場合にtrueを返します。

TreeSetのデータを削除する

TreeSetオブジェクトのデータを削除する場合は、removeメソッドを使用します。

 

ts.remove("Apple");

 

removeメソッドはセットに該当の要素が含まれている場合に要素を削除します。指定の要素が含まれていない場合はfalseを返します。

サンプルプログラム

以下サンプルではTreeSetに複数の要素を格納し、格納した要素を標準出力に出力します。

 

import java.util.TreeSet;

public static void main(String[] args) {

    TreeSet<String> ts = new TreeSet<String>();

    ts.add("Java");
    ts.add("C#");
    ts.add("PHP");

    for (String val : ts){
        System.out.println(val);
    }
}

【実行結果】

C#
Java
PHP
関連記事
外部リンク
- 記事検索 -