#7 Javaで学ぶ配列の基本
Javaには、複数の値をまとめて扱うデータ構造として、「配列」と「ArrayList」という2種類の仕組みがあります。この記事では、それぞれの違いと基本的な使い方を解説します。
配列(固定長)
Javaの配列は、大きさがあらかじめ決まっていて、後から変更できません。
String[] fruits = {"りんご", "みかん", "ぶどう"};
System.out.println(fruits.length); // 3
ArrayList(可変長)
大きさを自由に変えたい場合は、ArrayListというクラスを使います。
import java.util.ArrayList;
ArrayList fruits = new ArrayList<>();
fruits.add("りんご");
fruits.add("みかん");
値の追加にはadd()、削除にはremove()を使います。
要素にアクセスする・繰り返す
配列はfruits[0]のように角かっこで、ArrayListはfruits.get(0)のように専用のメソッドでアクセスします。この書き方の違いは、Java初心者が混同しやすいポイントです。
for (String fruit : fruits) {
System.out.println(fruit);
}
for-each文はどちらに対しても同じ書き方で使えます。
Stream APIで加工する
比較的新しいJavaでは、ArrayListの中身を条件で絞り込んだり変換したりする際、Stream APIという機能がよく使われます。
import java.util.stream.Collectors;
List longNames = fruits.stream()
.filter(f -> f.length() > 2)
.collect(Collectors.toList());
Javaならではの注意点
配列は基本的なデータ型(intなど)も直接格納できますが、ArrayListは基本的にIntegerのような「オブジェクト版」の型しか扱えません。用途に応じて、固定長で高速な配列を使うか、柔軟なArrayListを使うかを選びましょう。実際の開発では、要素数が実行時まで分からない場面がほとんどのため、ArrayListを使う場面のほうが多くなります。
まとめ
Javaには固定長の配列と可変長のArrayListがあり、アクセスの書き方がそれぞれ異なります。値を追加・削除する可能性があるならArrayListを選び、加工にはStream APIも活用しましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
Javaをもっと学びたい方には「スッキリわかるJava入門 第4版」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿