Java SE7 Gold 取得を目指して (8)
Java SE7 Gold をとりたい…!
本日は第8回目です。
6章の残り半分を進めました。
今日のこぼれ話
勉強で使っている参考書は全11章なので、折り返しといったところでしょうか。
やはりどこかへアウトプットすると、一人で勉強していても心細くならずに済みますね。
これから後半へ行くほど聞いたことのないワードがあふれてくると思いますが、めげずに早起きしていきます。
本日知ったこと(6章 2/2)
-
Comparable
- 自分と他オブジェクトを並び替えるためのインタフェース
-
compareTo(T o)
を実装 - TreeSetへ格納する際、要素が実装していないと実行時エラー
比較結果 戻り値 自オブジェクト < 比較対象 負の数 自オブジェクト = 比較対象 0 自オブジェクト > 比較対象 正の数 - SortedSet や SortedMap でComparableを実装したオブジェクトを管理する場合、同値性のチェックは
compareTo()
で行う
-
Comparator
- 2つのオブジェクトを並び替えるためのインタフェース
- ソート対象のオブジェクトと並び替えルールを独立させて定義している
-
compare(T o1, T o2)
を実装
比較結果 戻り値 o1 < o2 負の数 o1 = o2 0 o1 > o2 正の数 - SortedSet や SortedMap でComparatorを実装したオブジェクトを管理する場合、同値性のチェックは
compare()
で行う
-
Collections
-
static <T extends Comparable<? super T>> void sort(List<T> list)
- 自然順序付けで昇順ソート
-
static <T> void sort(List<T> list, Comparator<? super T> c)
- 指定されたコンパレータによってソート
- 第2引数がnullだと自然順序
- 指定されたコンパレータによってソート
-
-
Arrays
-
static void sort(int[] a)
- int型の配列をソート
-
static void sort(Object[] o)
- 自然順序付けで昇順ソート
- 要素がすべてComparableを実装している必要がある
- 配列内に複数の参照型を入れているとClassCastException
- 自然順序付けで昇順ソート
-
static <T> void sort(T[] a, Comparator<? super T> c)
- 指定されたコンパレータによってソート
- 第2引数がnullだと自然順序
- 配列内に複数の参照型を入れているとClassCastException
- 指定されたコンパレータによってソート
-
asList(T... a)
- 固定サイズのリストへ変換
- 要素の上書きはできるが、追加/削除はできない(UnsupportedOperationException)
-
binarySearch(int[] a, int key)
,binarySearch(Object[] o, Object key)
- 配列から指定の要素を検索し、インデックスを返す(見つからない場合は負の値)
- 呼び出し前にソートしておかないと結果は保証されない
- Comparatorを使ってソートしていた場合、
binarySearch()
の第3引数に同じComparatorを渡さないと結果は保証されない
- Collectionsにも同様のメソッドがある
- 配列から指定の要素を検索し、インデックスを返す(見つからない場合は負の値)
-
Comparableは自分を並び替え、Comparatorは他人を並び替え、というのは
OCJP Gold SE 7 認定資格試験 ポイント解説セミナー(今も開催しているのかは謎です)で聞いた解説です。
受講した当時はとてもやる気になって、ひと月以内に受験しようなんて思っていたのですが、あれから早幾月…。
Author And Source
この問題について(Java SE7 Gold 取得を目指して (8)), 我々は、より多くの情報をここで見つけました https://qiita.com/tomoki1207/items/d3e16cd3b054e5104a0b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .