JavaでHello World
Google
  HOME  |  基礎  |  掲示板  |  ツール |  書籍  |  デザインパターン  |  リンク  |  フィードバック
JavaでHello World > コレクション(Set)編  
メニュー
Home
情報交換掲示板
ツールの部屋
Java関連の書籍
アプリケーション編
Swing編
Swing(イベント)編
Swing(Look&Feel)編
アプレット編
iアプリ編
サーブレット編
サーブレット(Linux)編
サーブレット(web.xml)編
サーブレット(セッション)編
サーブレット(クッキー)編
サーブレット(フィルタ)編
JSP編
JSP(ディレクティブ)編
JSP(アクション)編
JSP(スクリプト)編
JSP(オブジェクト)編
JSP(カスタムタグ)編
JSP(データベース)編
Apache + Tomcat編
Struts編
JDBC編
JDBC(データソース)編
JDBC(MySQL)編
JDBC(PostgreSQL)編
JDBC(トランザクション)編
JavaMail(SMTP)編
JavaMail(POP)編
JNI編
RMI編
RMI(アプレット)編
CORBA編
JNDI編
EJB編
EJB(Entity Bean)編
JMS(PTP)編
JMS(Pub/Sub)編
XML(SAX)編
XML(DOM)編
XSLT編
SOAP編
国際化編
国際化(タイムゾーン)編
国際化(通貨)編
リフレクション編
コレクション編
コレクション(Set)編
コレクション(List)編
コレクション(Map)編
スレッド編
正規表現編
アサーション編
ログ機能編
サウンド編
ファイル入出力編
URL編
ソケット編
データグラム編
HTTP
FTP編
jar編
javadoc編
Ant編
外部コマンド編
プロパティファイル編
システムプロパティ編
Eclipse編
  2003/05/10  田中宏和
コレクション(Set)編
◆コレクションとは?
コレクションとは複数の要素が集まったグループを表すオブジェクトのことです。
◆コレクション・フレームワークとは?
コレクション・フレームワークとはコレクションを表したり操作したりする統一されたアーキテクチャのことです。
◆Setインターフェースとは?
重複要素のないオブジェクトの集まりを表します。
◆ここでの環境
OS Windows XP
J2SE SDK 1.4.1_01
◆Java実行環境の構築
アプリケーション編を参考にしてJava実行環境を構築してください。
◆Setインターフェース
■Setインターフェースの構成
■Setインターフェースの説明
インターフェース 説明
Set 重複要素のないオブジェクトの集まりを表します。
SortedSet 要素が自然順序付けに従って昇順にソートされたセットを表します。挿入される要素は、Comparable インタフェースを実装するか、指定された Comparator によって受け付けられる必要があります。
◆実装
SetインターフェースまたはSortedSetインターフェースを実装するクラスはHashSet、TreeSet、LinkedHashSetがあります。
クラス 説明
HashSet HashMap のインスタンスを基づくSet インタフェースを実装します。繰り返し順序について保証しません。
TreeSet TreeMap のインスタンスに基づくSet インタフェースを実装します。要素の昇順でソートされます。
LinkedHashSet 繰り返し順序を持つSet インタフェースのハッシュテーブルとリンクリストの実装です。要素がセットに挿入された順序を保持します。要素をセットに再挿入する場合、挿入順は影響を受けません。
◆サンプルコード
ここでは追加された要素がどのような順序で保持されているか見るプログラムを作成します。セットに10〜1までのIntegerオブジェクトを追加しています。
■ソースコード
HelloWorldSet.java(ここからダウンロード)
import java.util.*;

public class HelloWorldSet {
  public static void main(String[] args) {
    try {
      // HashSet
      Set hashSet = new HashSet();
      addData(hashSet);
      System.out.println("HashSet : " + hashSet);

      // TreeSet
      Set treeSet = new TreeSet();
      addData(treeSet);
      System.out.println("TreeSet : " + treeSet);

      // LinkedHashSet
      Set linkedHashSet = new LinkedHashSet();
      addData(linkedHashSet);
      System.out.println("LinkedHashSet : " + linkedHashSet);

    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  static void addData(Set set) {
    for (int i = 10;i >= 1;i--) {
      set.add(new Integer(i));
    }
  }
}
 
■コンパイルと実行
コマンドプロンプト
C:\JavaHello\Set>javac HelloWorldSet.java

C:\JavaHello\Set>java HelloWorldSet
HashSet : [2, 4, 8, 9, 6, 1, 3, 7, 10, 5]
TreeSet : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
LinkedHashSet : [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

C:\JavaHello\Set>

おおお!以下の説明の通りになっていますね!
HashSet・・・繰り返し順序について保証しない
TreeSet・・・要素の昇順でソートする
LinkedHashSet・・・要素が挿入された順序を保持する
■書籍
Java関連の書籍

 
  ネットで買えば断然お得!お買い物なら楽天市場
ツールの部屋 - Java関連の書籍 - デザインパターン - 情報交換掲示板 - HOME