ArrayListの使い方

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以降)の使い方」を参照ください。