Java:学習:4.配列とコレクションを極める

Java:学習:3.型を極める の続き

以下 VB.NETとの違い(自分が知らないこと)があればメモ

4-1. 配列で複数のデータを扱う


4-1-1. 配列の基本を理解する
int[] array = new int[10];

4-1-2. 配列を初期化する
int[] array2 = {1,2,3,4,5};
int[] array3 = new int[] {10,9,8,7,6};

※"int[] array" と "int array[]" どちらでも良いが "int[] array" を推薦

4-1-3. 配列への代入と取り出し

4-1-4. 配列のサイズを変更する
配列の要素数は変更不可
変更したい場合は配列コピーする
System.arraycopy(array, 0, newArray1, 0, array.length);  // Java5.0までの方法
int[] newArray2 = Arrays.copyOf(array, array.length + 3);  // Java6以降の方法

4-1-5. Arraysクラスを利用して配列を操作する
java.util.Arraysクラス
Arrays.toString(array);  // 文字列返還
Arrays.sort(array);  // ソート
※オブジェクト配列の場合 ComparableインターフェースのcompareToメソッドの実装が必要
Arrays.binarySearch(array, 5);

4-1-6. 可変長引数でメソッドを定義する
型の後ろにドットを3つつけて定義
vold log(String message, String... args) {
  :

4-2. コレクションフレームワークで複数のデータを扱う


4-2-1. 配列の限界とコレクションの特徴

4-2-2. 代表的なコレクションと使い分けの基準

4-3. 配列に近い方法で複数の要素を扱う ~Listインターフェース


4-3-1. Listインターフェースの基本

4-3-2. Listを作成する
以下のようにすれば作成済み配列をもとにしてListを作成できるが、作成したListに対して要素の追加・変更・削除はできない。
List integerList = Arrays.asList(1, 62, 31, 1, 54, 31);
変更したい場合は次のようにする。
List integerList = new ArrayList<>(Arrays.asList(1, 62, 31, 1, 54, 31));

4-3-3. Listの代表的なメソッド
値の置換ができる "list.set(0, "xxx");"

値の検索"indexOf"や含まれているかの判定"contains"は線形検索を行うため早い訳ではない。

4-3-4. Listをソートする
"java.util.Collections"クラスの"sortメソッド"を使用する。

4-3-5. Listを検索する
"Collections"クラスの"binarySearchメソッド"を使用する。ただし事前にソートが必要。

4-3-6. Listのイテレーション
List list = new ArrayList<>();
  :
for (String element : list) {
  System.out.println(element);
}

for (Iterator iterator = list.iterator(); iterator.hasNext();) {
  String element = iterator.next();
  System.out.println(element);
}

4-3-7. Listの3つの実装クラスを理解する
主なクラス
  • ArrayListクラス
  • LinkedListクラス
  • CopyOnWriteArrayListクラス

4-3-8. Listの実装クラスをどう使い分けるか

4-4. キーと値の組み合わせで値を扱う ~Mapインターフェース


4-4-1. Mapを作成する

4-4-2. Mapの使い方

4-4-3. Mapの3つの実装クラスを理解する
  • HashMapクラス
  • LinkedHashMapクラス
  • TreeMapクラス

4-5. 値の集合を扱う ~Setインターフェース


4-5-1. Setの初期化

4-5-2. Setの使い方

4-5-3. Setの3つの実装クラスを理解する
  • HashSetクラス
  • LinkedHashSetクラス
  • TreeSetクラス
※Setの内部はMapを使用している

4-6. その他のインターフェース


4-6-1. 値を追加した順と同じ順に値を取得する ~Queueインターフェース

4-6-2. 両端キューを使う ~Dequeインターフェース
デック


[Java]
https://gihyo.jp/book/2017/978-4-7741-8909-3

0 件のコメント:

その他の記事