Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで4

4.1.2 配列を初期化する

(1)宣言時に内容が決まっていない → newで要素数のみ指定する
   int array = new int[10];

(2)宣言時に内容が決まっている → 値の一覧を列挙する
   int array = { 1, 2, 3, 4, 5 };

(3)宣言後に内容が決まる、もしくは引数として利用する
   array = new int[] { 1, 2, 3, 4, 5 };

4.1.4 配列のサイズを変更する

  • Java5.0 System.arraycopy
  • Java6.0 Arrays.copyOf

コラム Comparatorか,Comparableか?

  • Comparableによるソート → そのクラス自身の最も自然な並び方によるデフォルトソートとして利用する
  • Comparatorによるソート → 業務的に必要な並び方によるソートとして利用する

4.1.6 可変長引数でメソッドを定義する

  • 引数に配列を指定する場合は可変長引数で記述ができるため呼び出し側で new する必要がなくなる

4.2.2 代表的なコレクションと使い分けの基準

4.3.1 Listインターフェースの基本

4.3.4 Listをソートする

  • Listをソートするためには java.util.Collectionsクラスのsortメソッドを利用します

4.3.5 Listを検索する

  • Listを検索するためには java.util.CollectionsクラスのbinarySearchメソッドを利用します
  • binarySearchメソッドを実行する前に対象のListがソートされてなくてはいけません

4.3.6 Listのイテレーション

  • イテレータには要素を削除するメソッドが用意されており、繰り返し処理をしながら、コレクションから要素を削除できます

4.3.8 Listの実装クラスをどう使い分けるか

  • 配列の途中で要素の追加や削除をおこなうことが多い → LinkedList
  • for文などを使った全体的な繰り返し処理が多い → ArrayList
  • 複数スレッドから同時にアクセスする → CopyOnWriteArrayList

4.4.1 Mapを作成する

4.4.4 Mapの実装クラスをどう使い分けるか

  • キーの大小を意識した部分集合を取り扱う場合 → TreeMap
  • 要素の順序を保持する必要がある場合 → LinkedHashMap
  • 複数スレッドから同時にアクセスする場合 → ConcurrentHashMap
  • その他の場合 → HashMap

kameyatakefumi.hatenablog.com
kameyatakefumi.hatenablog.com