LoginSignup
1
1

More than 3 years have passed since last update.

ArrayList

Last updated at Posted at 2019-12-14

個人的な勉強のためまとめました

ArrayList

何らかの集合のことをコレクションと呼び、配列もそのうちの一つである
Javaには、もっと簡単にコレクションを扱うために、コレクションAPIコレクション・フレームと呼ばれる複数のインターフェイスや、クラスで構成されるクラス群がある
これらのインターフェイスやクラスの多くはjava.utilパッケージに配置されており、java.util.ArrayListクラス動的配列とも呼ばれ、配列のように使える

ArrayListクラスの特徴

①オブジェクトであればどのような型でも使える
②必要に応じて要素数を自動的に増やす
③追加した順に並ぶ
④nullも値として追加できる
⑤重複した値も追加できる
⑥スレッドセーフではない

①、②の特徴は、配列の問題点をカバーするもの
③は配列のように値を番号で管理するため、追加した順に値が並ぶリスト構造である。ただし、任意の場所に挿入することもできる
⑥は並行処理したときに意図しない結果になることを防ぐ機能がついているかどうか
 ※スレッドセーフなリストを使いたい場合はjava.util.Vectorを使う

ジェネリックス

ArrayListの値を追加するaddメソッドの引数や、値を取り出すgetメソッドの戻り値はObject型になっているため、何でも扱うことができる
しかし、値が混在するコレクションはダウンキャストするとき例外が発生する可能性がある
そこで、型を指定することで、コレクションが扱える型を制限するジェネリックスという機能がある

例)ジェネリックス
ArrayList<String> list=new ArrayList<>;

指定している型のことを型パラメータ(例だとStringの部分)、ジェネリックスをより簡潔に書けるようにダイヤモンド演算子<>(例だと右の<>)という機能がある
この機能によりインスタンスへの参照を保持する変数がどのような型変数で宣言しているかをコンパイラが判断し、同じ型を使ってインスタンス生成時の型変数を決めれる。これを型推論と呼ぶ

1
1
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
1
1