SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

作って覚えるJavaプログラミングのススメ

Java入門 (7) - List・Map・Setなどのコレクション・フレームワーク

作って覚えるJavaプログラミングのススメ 第7回

  • このエントリーをはてなブックマークに追加

今回は、多数のオブジェクトを管理するためのコレクション・フレームワークの基本について説明しましょう。

  • このエントリーをはてなブックマークに追加

はじめに

 たくさんのオブジェクトを管理するのに、皆さんならどういうものを利用するでしょうか。多くの人が思い浮かべるのは「配列」でしょう。しかし配列はなかなか融通が利かない代物です。それよりもはるかに便利なものがJavaには用意されています。それが「コレクション・フレームワーク」と呼ばれるクラス群です。今回は、この中の主なものについて使い方を説明しましょう。

対象読者

  • Javaに興味はある、けれどプログラミング経験がない、という人。
  • Javaに興味はある、けれど何から手をつければいいかわからない、という人。
  • Javaに興味はない、でも何でもいいからプログラミングをしたい、という人。

これまでの記事

コレクションとは?

 プログラミングでは、多数の値をまとめて操作するということがよくあります。こうしたときに用いられるのが配列です。しかし、Javaの配列は正直言ってあまり使い勝手がよいものでもありません。あらかじめ決められた数の要素を保管するものを作成しておかねばならず、後で追加したりすることもできませんし、そもそも同じ種類の値しかまとめることができません。

 こうした点を考え、多数の値(オブジェクト)をまとめて柔軟に扱うことを考えて用意されたのが「コレクション・フレームワーク」と呼ばれるものです。これは1つのクラスだけでなく、多くのクラスとインターフェースから構成されています。さまざまな性質を備えたクラスがあり、必要に応じてその中から最適なものを選んで利用します。

 実際に、Javadocなどのドキュメントで、コレクション・フレームワーク関係のクラスについて調べてみたことのある人なら分かることでしょうが、「似たようなクラスがたくさんある」ように見えてしまい、一体どれをどう使えばいいのか、慣れないうちは途方に暮れてしまいます。そこで、まず最初に用意されているクラス類をその性質から整理していくことにしましょう。

 コレクション・フレームワークのクラス類は、整理すると以下のような性質から分類できます。

順序付けられている

 これは、収められた要素の順番が保障されているかどうか、ということです。決まった順番どおりに常にオブジェクトが取り出されるようになっています。多数のオブジェクトを順番に処理するようなときに用いられ、この性質を持ったものは「List」と呼ばれるクラスとして用意されています。

キーによって管理されている

 ただ値だけがずらっと収められているのでなく、それぞれに名前(キー)をつけて管理するタイプのものです。名前を使っていつでも必要な要素だけをピックアップして取り出すことができます。この種のものは、「Map」と呼ばれるクラスとして用意されています。

値がユニークである

 ユニークというのは「すべての値が異なる(同じ値が複数存在しない)」ということです。やや特殊な性質ですが、同じ値がいくつも保管されないので、用途によっては非常に重宝するでしょう。これは「Set」と呼ばれるクラスとして用意されています。

 この「List」「Map」「Set」の3つが、コレクションの基本といってよいでしょう。ここまで便宜上、「クラス」と呼びましたが、実際には「インターフェース」として用意されています。インターフェースというのは、前にイベントリスナーの説明(第5回参照)で触れましたが、さまざまな仕様だけを記述した特殊なクラスのことです。実際に利用する際は、これらのインターフェースを組み込んだクラスが別途用意されているので、こちらを使用します。では、使い方を見ていきましょう。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
ArrayListでオブジェクトを管理する

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
作って覚えるJavaプログラミングのススメ連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2385 2008/04/17 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング