Java ArrayList
ArrayListクラスは、動的に変更できる配列です。通常の配列との違いは、固定サイズの制限がなく、要素を追加または削除できることです。
ArrayListはAbstractListを継承し、Listインターフェイスを実装します。
ArrayListクラスはjava.utilパッケージにあり、使用する前に導入する必要があります。構文形式は次のとおりです。
import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<E> objectName =new ArrayList<>(); // 初始化
- E:objectNameのデータ型を設定するために使用される汎用データ型。参照データ型のみにすることができます。
- objectName:オブジェクトの名前。
ArrayListは、追加、削除、変更、トラバースなどの関連機能を提供する配列キューです。
要素を追加
ArrayListクラスは、多くの便利なメソッドを提供します。ArrayListに要素を追加するには、add()メソッドを使用できます。
インスタンス
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites);
}
}
上記の例では、実行出力の結果は次のとおりです。
[Google, Runoob, Taobao, Weibo]
アクセス要素
ArrayListの要素にアクセスするには、get()メソッドを使用できます。
インスタンス
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites.get(1)); // 访问第二个元素
}
}
注:配列のインデックス値は0から始まります。
上記の例では、実行出力の結果は次のとおりです。
Runoob
要素を変更する
ArrayListの要素を変更する場合は、set()メソッドを使用できます。
インスタンス
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
sites.set(2, "Wiki"); // 第一个参数为索引位置,第二个为要修改的值
System.out.println(sites);
}
}
上記の例では、実行出力の結果は次のとおりです。
[Google, Runoob, Wiki, Weibo]
要素を削除
ArrayListの要素を削除する場合は、remove()メソッドを使用できます。
インスタンス
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
sites.remove(3); // 删除第四个元素
System.out.println(sites);
}
}
上記の例では、実行出力の結果は次のとおりです。
[Google, Runoob, Taobao]
サイズを計算する
ArrayListの要素数をカウントする場合は、size()メソッドを使用できます。
インスタンス
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites.size());
}
}
上記の例では、実行出力の結果は次のとおりです。
4
配列のリストを繰り返し処理します
を使用して、配列リストの要素を反復処理できます。
インスタンス
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
for (int i = 0; i < sites.size(); i++) {
System.out.println(sites.get(i));
}
}
}
上記の例では、実行出力の結果は次のとおりです。
Google
Runoob
Taobao
Weibo
for-eachを使用して、要素を反復することもできます。
インスタンス
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
for (String i : sites) {
System.out.println(i);
}
}
}
上記の例では、実行出力の結果は次のとおりです。
Google
Runoob
Taobao
Weibo
その他の参照型
ArrayListの要素は実際にはオブジェクトです。上記の例では、配列リストの要素はすべてString型の文字列です。
他のタイプを保存したいが、参照データタイプのみを格納したい場合は、基本タイプのパッケージングクラスを使用する必要があります。
基本タイプに対応するパッケージングクラステーブルは次のとおりです。
ベーシックタイプ | 参照型 |
---|---|
ブール値 | ブール値 |
バイト | バイト |
ショート | ショート |
int | 整数 |
長いです | 長いです |
浮く | 浮く |
ダブル | ダブル |
char | キャラクター |
さらに、BigIntegerとBigDecimalは高精度の演算に使用されます。BigIntegerは任意精度の整数をサポートし、参照型でもありますが、対応する基本型はありません。
ArrayList<Integer> li=new Arraylist<>(); // 存放整数元素
ArrayList<Character> li=new Arraylist<>(); // 存放字符元素
次の例では、ArrayListを使用して数値を格納します(整数型を使用)。
インスタンス
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<Integer> myNumbers = new ArrayList<Integer>();
myNumbers.add(10);
myNumbers.add(15);
myNumbers.add(20);
myNumbers.add(25);
for (int i : myNumbers) {
System.out.println(i);
}
}
}
上記の例では、実行出力の結果は次のとおりです。
10
15
20
25
ArrayListソート
Collectionsクラスも非常に便利なクラスであり、java.utilパッケージにあります。提供されているsort()メソッドは、文字または数字のリストをソートできます。
次の例では、文字を並べ替えます。
インスタンス
import java.util.ArrayList;
import java.util.Collections; // 引入 Collections 类
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Taobao");
sites.add("Wiki");
sites.add("Runoob");
sites.add("Weibo");
sites.add("Google");
Collections.sort(sites); // 字母排序
for (String i : sites) {
System.out.println(i);
}
}
}
上記の例では、実行出力の結果は次のとおりです。
Google
Runoob
Taobao
Weibo
Wiki
次の例では、数値を並べ替えます。
インスタンス
import java.util.ArrayList;
import java.util.Collections; // 引入 Collections 类
public class RunoobTest {
public static void main(String[] args) {
ArrayList<Integer> myNumbers = new ArrayList<Integer>();
myNumbers.add(33);
myNumbers.add(15);
myNumbers.add(20);
myNumbers.add(34);
myNumbers.add(8);
myNumbers.add(12);
Collections.sort(myNumbers); // 数字排序
for (int i : myNumbers) {
System.out.println(i);
}
}
}
上記の例では、実行出力の結果は次のとおりです。
8
12
15
20
33
34
bers = new ArrayList<Integer>();
myNumbers.add(33);
myNumbers.add(15);
myNumbers.add(20);
myNumbers.add(34);
myNumbers.add(8);
myNumbers.add(12);
Collections.sort(myNumbers); // 数字排序
for (int i : myNumbers) {
System.out.println(i);
}
}
}
上記の例では、実行出力の結果は次のとおりです。
8
12
15
20
33
34