SHOEISHA iD

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

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

Android開発のためのJava SE再入門

コレクションとAndroid非同期処理の基本

Android開発のためのJava SE再入門(5)

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

 Androidアプリケーションは、Java言語を用いて開発できます。Androidアプリケーションの開発にあたっては、米グーグル社が提供するAndorid SDK(Software Development Kit、開発キット)の知識は当然ながら、基本となるのはJava SEです。この連載では、Javaでの開発の基礎となるJava SEを、実際にAndorid上で実行できるソースコードとともに解説します。

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

はじめに

 第5回目の本稿は、java.utilパッケージから主にコレクションと呼ばれるAPIを中心に解説します。コレクションとは、複数のオブジェクトを集合としてあつかう仕組みのことで、Android開発においてもよく使用されるものです。後半では、AndroidのGUIと非同期処理の問題をとりあげます。

 なおjava.utilパッケージの各クラスの詳細な仕様については、オンラインのJava Platform, Standard Edition 6 API仕様や参考書籍などをご覧ください。

対象読者

 Androidアプリケーションの開発を始めたい方で、JavaとEclipseのごく基本的な知識がある方を対象とします。

ジェネリックス

 コレクションの前に、まずジェネリックスについて少し説明しておきましょう。

 ジェネリックスとは、<>で囲んだ型名(型パラメータ)をクラスやメソッドに付加して定義し、汎用的なクラスをコンパイル時に特定の型に対応づけるようにする機能で、J2SE 5.0から導入されました。

ジェネリックスでのクラス定義

 ジェネリックスを用いたクラス定義は、例えば次のようになります。

class GenericSample<T> {

    T val;

    public void set(T val) {
        this.val = val;
    }
}

 GenericSample<T>のTが型パラメータです。型パラメータには、任意の文字が利用できますが、通常TやE、Kといった、その型の使用目的や意味を表す名称(Type、Element、Keyなど)の先頭大文字1文字を用います。

 このクラスをインスタンス化するには、次のようにコンストラクタで型を指定します。こうすることで、型パラメータのTの部分が指定した型に置き換わります。setメソッドの引数も指定した型になるので、他の型を使うと、コンパイルエラーとなってしまいます。

// Integerクラスを指定したGenericSample
GenericSample<Integer> sample1 = new GenericSample<Integer>();
sample1.set(123);

// Stringクラスを指定したGenericSample
GenericSample<String>  sample2 = new GenericSample<String>();
sample2.set("文字列");

// 型が異なるのでコンパイルできない
// sample2.set(123);

java.utilパッケージ

 java.utilパッケージやその下位パッケージで提供されるAPIには、今回紹介するコレクション関連の他、プロパティ、乱数、タイマー、ロケール、正規表現といった、文字通りユーティリティ機能のものが数多くあります。ただ紙面に限りがありますので、コレクション以外のAPIについては、また回をあらためて紹介することにします。

Android SDK APIレベルについて

 Android SDKに含まれるjava.utilパッケージは、現行のJava SE 6のパッケージとまったく同じというわけではありません。API Levelが低いと、Java SE 6のjava.utilパッケージに含まれるクラスやメソッドの一部が、実装されていない場合があります。

 例えば、後述するQueueインターフェースのaddメソッドは、API Level 11以降で実装されました。またQueueインターフェースを拡張したDequeインターフェースは、API Level 9以降でしか使用することができません。

 その他、API Levelの微妙な違いは、Android Developersサイトで確認するようにしてください。

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

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

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

メールバックナンバー

次のページ
Collections Framework

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

  • このエントリーをはてなブックマークに追加
Android開発のためのJava SE再入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

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

WINGSプロジェクト 高江 賢(タカエ ケン)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング