イントロダクション
自分の記憶によると、JavaDocを読まない人が多いイメージがあります。JavaAPIの使い方が書いてあるのでこれが読めればJavaを極めたといって過言ではないと思うのですが。。。
つまり、JavaDocを勧めたかったというわけです。。。
JavaDoc
JavaDocとは、作成したメソッド、クラスの説明を行うコメントです。しかし、通常のコメントと違うのは、「javadoc」コマンドを使用してJavaDocが出力できるところです。
自分の作成したものがドキュメントで一覧できれば、ちょっと嬉しいですし、実際には現場での作成してきたコードの説明などをこのJavaDocを使用して行えば、ずいぶんと学習コストが削減できると思います。つまるところは、若いエンジニアに「詠んでわからない所を聞いて」と言えるようにしておけるということです。
JavaDocを読む
Java Docの読解ということで、左のリンクはJava8のドキュメントで、Java8の概要を記述しているものになります。その中にある「java.util.List]インターフェイスクラスについて今回は読み進めてみようと思います。
リストはコレクションの仲間
コレクションフレームワーク(CollectionFramework日本語)のスーパーインターフェース(親インターフェース)にあるCollectionは
Collections Frameworkの根っこになるものです。
※スーパーインターフェース(親インターフェース)はコードに書くと下のようになります。
public interface 子供インターフェース extends 親インターフェース
このインターフェイスを実装(implements)しているクラスや継承しているインターフェイスがコレクションフレームワークの部品(クラス)になります。
ポイント
・ループ処理が楽になる
・便利なメソッドがあると思ってもらえばおっけ。
・Iteratableは「forEach」メソッドを提供します。→ラムダ式が使えるということ
List<E>のEはエレメント(要素)
を示し、ジェネリクスと呼びます。
リストなどを使用する時は大体これがもれなく付いてきます。
// ArrayListをListとして使用します。 List<String> list = new ArrayList<>(); // LinkedListをListとして使用します。 List<String> list = new LinkedList<>(); // VectorをListとして使用します。 List<String> list = new Vector<>();
上記の様に使用します。
用途としては、リストに登録した値をソート(並び替え)、指定したものの取得、リスト内にあるかチェックするなど
色々とあるので探してみるのも一興です。
百聞は一見にしかずです。ソースはこちらです。
Gitからダウンロードできます。
類似品にセット(Set)があります
toArray()はList→配列(T[])の形へ変換する
サンプルコードです。
ArrayList<TestA> list = new ArrayList<>(); for (int i = 0; i < 5; i++) { list.add(new TestA()); } TestA[] items = new TestA[list.size]; items = list.toArray(items);
これで対象の型(クラス)を安全に取り出すことができます。
昔のやり方だとキャストしていましたので、コードとして美しくないし、ClassClastExceptionに対する注意が必要(安全な型変換ではない)なのでイマイチなコードでしたが、最近ではこのような方法があるのでGoodですね。
<イマイチなコード>
ArrayList<TestA> list = new ArrayList<>(); for (int i = 0; i < 5; i++) { list.add(new TestA()); } // キャストしているので安全ではない items = (TestA[]) list.toArray();
リストの主な機能
リストへの要素追加、削除、検査
ラムダ式オブジェクト取得
Collections
リストなどコレクションを扱うのに便利なクラスCollectionがあります。※以下にメソッドの一部を記載します。
- Collection.addAll(): 指定されたすべての要素を指定されたコレクションに追加します。
- Collection.disjoint(): 指定された2つのコレクションに共通の要素が存在しない場合、trueを返します。
List Map
Listの扱いに慣れたら、Mapインターフェースクラスも使ってみましょう。実態クラスとしては、HashMapクラス、LinkedHashMapクラスがあります。
そのほかにもありますが、今回はここまでにします。
関連ページ一覧
Eclipse セットアップ
- Java Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
- Eclipse SceneBuilderを追加する
- JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
Java Basic一覧
- Java Basic Level 1 〜Hello Java〜
- Java Basic Level2 〜Arithmetic Calculate〜
- Java Basic Level3 〜About String class〜
- Java Basic Level 4〜Boolean〜
- Java Basic Level 5〜If Statement〜
- Java Basic Summary from Level1 to 5
- Java Basic Level 6 〜Traning of If statement〜
- Java Basic Level8 〜How to use for statement〜
- Java Basic Level 8.5 〜Array〜
- Java Basic Level 9〜Training of for statement〜
- Java Basic Level 10 〜While statement 〜
- Java Basic Swing〜オブジェクト指向〜
- Java Basic Swing Level 2〜オブジェクト指向2〜
- サンプル実装〜コンソールゲーム〜
- Java Basic インターフェース・抽象クラスの作り方
- Java Basic クラスとは〜Step2_1〜
- Java Basic JUnit 〜テストスイートの作り方〜
Git関連
- Java Git clone in Eclipse 〜サンプルの取得〜
- Eclipse Gitリポジトリの取得 〜GitからソースをPullしよう〜
- IntelliJ IDEA Git〜Gitリポジトリからクローン〜