Javaのリスト(ArrayList
)の要素・要素数を取得する方法について書いています。
この記事ではリストに対して、下記の操作をしてみました。
・リストから範囲を指定して新しいリストを作る
・リストを要素分、ループする
・要素数を取得する
載せているコードについては、OpenJDKのバージョン19で動作を確認しました。
リストから要素を取得する
リストから要素を取得するには、getメソッドを使うことができます。
例えば、下記のように使います。
import java.util.ArrayList;
public class GetListTest {
public void exec() {
ArrayList<String> fruits = new ArrayList<String>();
fruits.add("apple");
fruits.add("orange");
fruits.add("grape");
System.out.println(fruits.get(1)); // orange
}
}
最初にリストを作るためにjava.util.ArrayList
をインポートしています。
execメソッドで、getメソッドを使う処理をしています。
まずfruits
変数に対して、文字列のリストを作って、3つの文字列を追加しました。
その後に、fruits
リストからgetメソッドを呼び出しています。
引数として渡しているのは要素番号です。
渡した要素番号の要素を取得することができます。
今回は1番を渡しているため、1番目の要素が取得できます。
リストは0番目から数えるので、プログラムを実行すると「orange
」が出力されました。
リストから範囲で取得して、新しいリストを作成する
リストを要素番号の範囲で指定して、要素を取得し、新しいリストを作ることができます。(値は共有されます)
この操作をしたいときには、リストからsubListメソッドを使います。
例えば、下記のように使います。
import java.util.ArrayList;
import java.util.List;
public class GetListTest {
public void exec() {
ArrayList<String> fruits = new ArrayList<String>();
fruits.add("apple");
fruits.add("peach");
fruits.add("orange");
fruits.add("melon");
fruits.add("grape");
List<String> newFruits = fruits.subList(1, 3);
for (String fruit : newFruits) {
System.out.println(fruit);
}
}
}
最初にリストを作るためにjava.util.ArrayList
をインポートしています。
subListメソッドの返り値を受け取るためにjava.util.List
もインポートしました。
execメソッドで、subListメソッドを使う処理をしています。
まずfruits
変数に対して、文字列のリストを作って、5つの文字列を追加しました。
その後にfruits
リストからsubListメソッドを呼び出しています。
引数として渡しているのは、第1引数に開始位置、第2引数に終了位置です。
返り値として、リストの要素が範囲で切り取られて、範囲のリストが返ってきます。
今回は開始位置に「1」、終了位置に「3」を指定しているので、「peach・orange
」が取得されます。
このリストの要素は共有されているので、newFruits
リストの要素変更すると、fruits
リストの要素も変わります。
最後にnewFruits
リストをループして値を出力しています。
プログラムを実行すると、下記のように出力され、範囲で取得できたことが確認できました。
peach
orange
リストでループ処理し、全要素を取得する
リストをループ処理して、全要素に対して処理をするにはfor文を使うと良いです。
拡張for文を使う
拡張for文を使うと、要素番号を指定する変数を用意することなく、ループ処理できます。
import java.util.ArrayList;
public class GetListTest {
public void exec() {
ArrayList<String> fruits = new ArrayList<String>();
fruits.add("apple");
fruits.add("peach");
fruits.add("orange");
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
fruits
変数に3つの文字列でリストを作りました。
次の処理で、拡張for文を使ってループ処理しています。
for文のコロン(:
)の左側にループごとに要素を取得する変数、右側にループで使いたいリストを指定しています。
プログラムを実行すると、下記のように要素が取得できました。
apple
peach
orange
for文を使う
通常のfor文を使うときには、下記のように書くことができます。
for (int i = 0; i < fruits.size(); i++) {
String fruit = fruits.get(i);
System.out.println(fruit);
}
for文の「()
」の中ですが、最初に変数i
を定義して、初期値「0」を代入しています。
次に真ん中がループ条件です、fruits
の要素数よりも、変数i
の値が低い間ループするようにしています。
そして、「i++
」でループが回るたびにカウントアップするようにしました。
for文の配下の処理では、getメソッドを使って要素を取得し、出力しています。
プログラムを実行すると、こちらも先ほどと同様に下記のように、値が出力されました。
apple
peach
orange
要素数を取得する
リストから要素数を取得するには、リストからsizeメソッドを呼び出します。
import java.util.ArrayList;
public class GetListTest {
public void exec() {
ArrayList<String> fruits = new ArrayList<String>();
fruits.add("apple");
fruits.add("orange");
fruits.add("grape");
System.out.println(fruits.size()); // 3
}
}
最初にfruits
変数に3つの文字列でリストを作りました。
次にfruits
リストからsizeメソッドを呼び出しています。
これで、要素数が取得でき、このプログラムを実行すると「3」が出力されます。
リストから要素・要素数を取得する方法まとめ
今回はJavaでリストから要素・要素数を取得する方法について書きました。
記事の内容をまとめると、下記になります。
・リストから範囲で要素を取得して、リストを返すにはsubListメソッドが使えた。
・リストを拡張for文やfor文で、要素数がある間ループできた。
・要素数を取得するにはsizeメソッドが使えた。
コメント