0
0

Java学習 リスト ArrayList

Posted at

リスト

リストは、Rubyの配列と似たデータ管理の仕組みで、以下の特徴がある。

  • 要素を順序づけて管理する
  • 要素を事後的に追加したり削除できる

また、Javaのリストには、以下の2種類がある。

  • ArrayList
  • LinkedList

ArrayListの方が使用頻度が高い。

ArrayList

ArraListは「可変長配列」を使用するための仕組み。
可変長配列とは、文字通り長さ(要素数)を変更できる配列のこと。

Rubyの配列は可変長なので、Javaの配列よりもArrayListの方が性質や使い方が近い。

ArrayListの使い方

import java.util.ArrayList;

class Main {
  public static void main(String[] args) {
    ArrayList<Integer> scores = new ArrayList<Integer>();

    scores.add(1);
    scores.add(5);
    scores.add(10);
    scores.add(15);

    System.out.println(scores.get(0));
    System.out.println(scores.get(1));
    System.out.println(scores.get(2));
    System.out.println(scores.get(3));
  }
}

以下が実行結果

1
5
10
15

ArrayListを使用する際の手順

  1. ライブラリをインポートする
  2. ArrayListの宣言を行う
  3. ArrayListに値を代入する
  4. ArrayListから要素を取り出す

1. ライブラリをインポートする

ArrayListを使用する際は、ライブラリのインポートが必要になる。
インポートするには、ファイルの冒頭に以下の記述を行う。

import java.util.ArrayList;

2. ArrayListの宣言を行う

ArrayListの宣言と初期化は以下のように行う。

ArrayList<データ型> scores = new ArrayList<データ型>();

先述のコードでは、整数を格納するArrayListを作成したので、以下のように記述した。

ArrayList<Integer> scores = new ArrayList<Integer>();

ここでは、以下の2つの動作を行っている。

  1. 整数(Integer)を格納するArrayListを「scores」という名称で宣言
  2. ArrayListの要素を作成

そして、 1 に 2 を代入している。

また、右辺でも要素のデータ型を指定していますが、これは省略が可能。
以下のように記述しても問題なく動作する。

ArrayList<Integer> scores = new ArrayList<>();

右辺の Integer の記述を省略している。

3. ArrayListに値を代入する

ArrayListに要素を追加するためにはaddメソッドを使用する。
記述は、add(要素として追加する値)のように行います。
先述のコードでは、scoresという名称のArrayListに「1」「5」「10」「15」を追加している。

scores.add(1);
scores.add(5);
scores.add(10);
scores.add(15);

addメソッドを使用すると、要素はArrayListの末尾に追加される。

4. ArrayListから要素を取り出す

要素を取り出す際は、getメソッドを使用する。

記述は、get(取得したい要素のインデックス) のように行う。
配列から要素を取り出す際と同様に、「1番目」の要素を取り出したい時は、インデックスとして「0」を指定する。

先述のコードでは、scoresから、1番目、2番目、3番目、4番目の順に要素を取得している。

scores.get(0)
scores.get(1)
scores.get(2)
scores.get(3)
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