0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

java初心者が行く~コレクション_List~

Posted at

はじめに

java初心者が備忘録的に書いています

コレクション

javaにはデータをまとめて格納するためのAPIとしてコレクションフレームワークが定められている。
実務とかで使うことが多そう(List, Set, Mapとか)。
今回は有名なコレクションのなかでListに分類されているArrayListとLinlesListをまとめていく。

ArrayList

ArrayListは配列と似ていて要素を追加できるコレクションである。
書き方は

ArrayList<型名> 変数名 = new ArrayList<型名省略もできる>();

具体的な使い方は書き方としては以下の通り。

Sample
import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();

        list.add("a");
        list.add("b");

        for (int i = 0; i < 2; i++) {
            System.out.println(list.get(i));
        }
    }
}

ArrayListがもつメソッドを一部紹介
add(x)->リストの最後にxを追加
add(int, x)->int番目にxを挿入
set(int, x)->int番目にxを上書き
size()->格納されている要素数を返す

ArrayListは配列と違い要素が削除されたらそれ以降の要素が一個前に詰められる。
例)
0 1 2 3
a s d f
1番目のsを削除
0 1 2
a d f

LinkedList

LinkesListもArrayListと同じリストのクラス。よって書き方もArrayListをLinledListに書き換えればよいだけである。
しかしLinkesListはArrayListより要素の追加や削除を高速的に行うことができる。
これはクラスの内部実装の違いからおこる。
LinkedListは値の挿入や削除を行った場合に変更対象の一つ前の要素に対して次を指し示す矢印的なものを連結すればよいから高速なのである。
逆にArrayListは削除や追加を行ったら各要素を削除なら一つ前へ、追加なら一つ後ろへコピーしなおす必要がある。このため処理速度に差が出る。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?