0
0

この記事について

OracleJavaSE11 goldを勉強していた時になかなか覚えられないな〜っとなっていた内容を毎回見ることができるようにこちらの書籍で勉強していた時のまとめたものです!

おすすめ書籍(勉強開始時点の書籍最新版を購入しましょう)

各カテゴリごとでまとめていますので隙間時間に見てみてください。

コレクション

Object型として扱うことができるが取り出すときに互換性のない型にダウンキャストすると例外発生する

ボクシング

オートボクシングはプリミティブ←→参照型だけなので注意

ジェネリクス

<>
ダイヤモンド演算子、クラス内に記述される型パラメーター(T)を置き換える

総称型

ジェネリクスを使ったクラスのこと

型推論使用可能箇所(型を書かないで<>のみの場合)

変数への代入、メソッドの戻り値、メソッド呼び出しの引数

制約付き型パラメーター

T extends Aと記述することで、A型のクラスまたはサブクラスであることを保証できA型のクラスが持つメソッドを記述できる

非境界ワイルドカード

<?>のこと、実行時まで型パラメーターはわからない、メソッドの引数で使用される。
クラス、メソッドを非境界ワイルドカードにした場合、メソッドの戻り値はobject型になる
メソッドの引数はnullリテラルしか認められない

上限境界ワイルドカード

? extends Aのように、制約付き型パラメーターと同じ。
メソッドの戻り値は任意の型(この場合はA)になる
メソッドの引数はnullリテラルしか認められない(ポリモーフィズムなため)

下限境界ワイルドカード

? super B
メソッドの戻り値はobject型になる(型が確定しないため)
メソッドの引数は任意の型(この場合はBかBのスーパークラス)になる

変性

参照型をどの型で扱えるようにするのか

共変性

サブクラス型の代入を許す、ポリモーフィズム

非変性

サブクラス型の代入を許さない、ジェネリクス

反変性

さらにスーパークラス型の代入を許す

java.util.List

要素に番号をふって管理するインタフェース

arraylist

動的配列
要素内の処理は高速、新しい要素を加えバッファを越えた時、全てコピーして置き換えるので処理が遅くなる
読み込みは早いが書き込みが遅い

linkedlist

数珠繋ぎで互いにリンクを持つ配列
要素へのアクセスは先頭または末尾からのため処理が遅い
読み込みは遅いが書き込みは早い

vector

マルチスレッドに対応しているがパフォーマンスは悪い

java.util.Queue

FIFOのデータ構造を定義したインタフェース
add()
末尾から詰め込む

java.util.Deque

両端キュー。デックと読む。取り出す時は先頭から
addfirst()
先頭から詰め込む
addlast()
末尾から詰め込む

java.util.Set

重複しないことを保証するコレクションインタフェース
hashset()
実現クラス。順序を保証しない
treeset()
実現クラス。順序を保証する。自然順序か引数で渡したcomparaterに準拠する

java.util.Map

一意のキーと値を結びつける
ディクショナリ形式

説明
put()
get()
keyset() キーをまとめてset型で返す
entryset() mapからmap.entryの集合を取り出す
entry() map.entryのみの生成だがstaticで変更不可
ofentreis() map.entryからmapを作成するがstaticで変更不可

map.entryインタフェース

キーと値のペアを管理する、mapにputした時点で生成
getkey()
getvalue()

java.lang.comparableインタフェース

カプセルオブジェクトで実現する。
compareToも実現しなければいけない。アルゴリズムは一つのみ
compareTo()
整数昇順で並び替えを表現する
自分自身が本来の並びから相手よりも後ろにいるなら-1
自分自身が本来の並びから相手より前にいるなら1
同値なら0

java.util.collections

sort()
compareToを使用してオブジェクトを並び替える

java.util.comparaterインタフェース

並び替えの方法を記述する。
sortメソッドの第二引数で利用する
関数型インタフェース。
comparater

int compare(T,T)
メソッドにcompareToを使用した処理を実装する
collections.sortに引数で渡すとそれをもとにソートされる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0