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?

ArrayListまわり

Last updated at Posted at 2024-04-28

■固定の配列から可変のリストに変換したいとき
Arrays.asList

List<E> 変数名 = new ArrayList<>(Arrays.asList( E型の配列 ));

Arrays.asListと同じく、カッコ内に渡された配列をリストに変換する「List.of」がある。
Arrays.asListは、add、removeができないがset(変更)はできる。
一方で、List.ofはまったくもって不変のリスト。

■sublistとclearの合わせ技で、指定したインデックス範囲の要素を削除できる

subList( 第一引数start, 第二引数end-1)
・第一引数:取り出したい先頭のインデックス番号
・第二引数:ここで指定したインデックスのひとつ前で取り出し終了

clear
全ての要素を削除する

//numbersAには[0, 1, 2, 3, 4]の配列が詰め込まれているとして…
numbersA.subList(1, 3).clear(); // 1, 2 が削除される

■リストの昇順降順

import java.util.Comparator;

// numbersBを自然順序(昇順)に並べ替え
numbersB.sort(Comparator.naturalOrder());

// numbersBを自然順序(降順)に並べ替え
numbersB.sort(Comparator.reverseOrder()); 

■ラムダ式とforEachメソッド

・forEachメソッドはリスト内の要素を一つづつ取得し、各要素に対して処理を行う。
・ラムダ式は、forEachと見比べて考えるとわかりやすい。

▼拡張for文の場合

for (  リスト内の要素 : リスト ) {
    要素に対する処理
};

▼ラムダ式の場合

リスト.forEach( リスト内の要素 -> {
            要素に対する処理 });

■contains()メソッド
対象のリスト.contains(調べたい値)
・対象のリスト内の要素に、カッコ内の引数の値(数値や文字列)があるか調べる。
・答えはtrue/falseで返ってくる

List<Integer> intList = new ArrayList<>(List.of(0, 1)); 
// リスト内に引数の要素を含む場合は`true`、含まない場合は`false`を返す
intList.contains(1) // true
intList.contains(2) // false
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?