arraylistは、明細情報などを格納、取得するのによく使います。
またそれ以外にも情報をソートするために利用しています。
基本的な使い方について掲載します。
- 定義、要素の追加、削除、繰り返し(ループ)処理
import java.util.ArrayList;
// 変数定義
List<String> list = new ArrayList<String>();
// 要素追加
list.add("abc");
// 要素追加(挿入:先頭=0)
list.add(0,"abc");
// 要素削除(添え字0~)
list.remove(1);
// 要素削除(値のindexを取得し削除する)
int index = list.indexOf("abc");
if (index != -1) {
list.remove(index);
}
// 要素の繰り返し(ループ)
for (int i=0;i<list.size();i++) {
String val = list.get(i);
System.out.println(val);
}
- ソート処理(単純)
import java.util.ArrayList;
import java.util.Collections;
// 変数定義
List<String> list = new ArrayList<String>();
// 要素追加
list.add("A001");
list.add("B001");
// コレクションを使った並び替え(昇順)
Collections.sort(list);
// コレクションを使った並び替え(降順)
Collections.sort(foo, Collections.reverseOrder());
// 要素の繰り返し(ループ)
for (int i=0;i<list.size();i++) {
String val = list.get(i);
System.out.println(val);
}
- ソート処理(オブジェクト)
/* リスト項目オブジェクトクラス */
public class TestObj {
public int iCd;
public String strName;
public objTest(int iCd, String strName){
this.iCd = iCd;
this.strName = strName;
}
}
/* コンペアクラス */
import java.util.Comparator;
public class TestComp implements Comparator<TestObj> {
@Override public int compare(TestObj p1, TestObj p2){
return p1.iCd < p2.iCd ? -1 : 1;
}
}
※上記リスト項目オブジェクトクラス、コンペア用クラスを準備する。
compare メソッドでは、小さい:負の数、同一:0、大きい:正の数を返却する事で、大小の判定を行います。
import java.util.ArrayList;
import java.util.Collections;
// 変数定義
List<TestObj> list = new ArrayList<TestObj>();
// 要素追加
list.add(new TestObj(1,"abc"));
list.add(new TestObj(2,"def"));
// コンペアクラスを使った並び替え
Collections.sort(list, new TestComp());
// 要素の繰り返し(ループ)
for (int i=0;i<list.size();i++) {
int iCd = list.get(i).iCd;
String strName = list.get(i).strName;
System.out.println(iCd+","+strName);
}
※ListからMapに変換ついては「ListとMapの相互変換」を参照ください。
※Streamを使ったソートついては「Stream(Java8以降)の使い方」を参照ください。