■ List <=> 配列に変換するには
// List => 配列
List<SampleClass> list1 = new ArrayList<>();
SampleClass[] classes = list1.toArray(new SampleClass[list1.size()]);
// 配列 => List
SampleClass[] samples = new SampleClass[3];
List<SampleClass> list2 = Arrays.asList(samples);
■ サンプル
* ジェネリックを使って、変換処理を共通化。
http://blogs.yahoo.co.jp/dk521123/32099558.html
* 以下のサイトが役立った。多謝。
http://d.hatena.ne.jp/srkzhr/20090926/1253938374
SampleClass.java
配列/Listで使用するサンプル・オプジェクト
import java.util.Calendar;
public class SampleClass {
public long id;
public String name;
public Calendar dateTime;
public SampleClass(long id, String name, Calendar dateTime) {
this.id = id;
this.name = name;
this.dateTime = dateTime;
}
}
Converter.java
import java.lang.reflect.Array;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
public class Converter {
public static void main(String[] args) {
SampleClass sample1 = new SampleClass(1L, "Mike", Calendar.getInstance());
SampleClass sample2 = new SampleClass(2L, "Tom", Calendar.getInstance());
SampleClass sample3 = new SampleClass(3L, "Smith", Calendar.getInstance());
List<SampleClass> sampleClazz = new ArrayList<SampleClass>() {
{
add(sample1);
add(sample2);
add(sample3);
}
};
SampleClass[] resultArrayClazz = Converter.toArray(sampleClazz);
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");
for (SampleClass result : resultArrayClazz) {
System.out.println("ID : " + result.id);
System.out.println("Name : " + result.name);
System.out.println("DateTime : " + dateFormatter.format(result.dateTime.getTime()));
}
System.out.println("************************");
List<SampleClass> resultListClazz = Converter.toList(resultArrayClazz);
for (SampleClass result : resultListClazz) {
System.out.println("ID : " + result.id);
System.out.println("Name : " + result.name);
System.out.println("DateTime : " + dateFormatter.format(result.dateTime.getTime()));
}
}
@SuppressWarnings("unchecked")
public static <T> T[] toArray(List<T> targetValues) {
if (targetValues == null || targetValues.size() <= 0) {
return null;
}
Class<?> targetClazz = targetValues.get(0).getClass();
T[] returnValues = (T[]) Array.newInstance(targetClazz, targetValues.size());
int i = 0;
for (T value : targetValues) {
returnValues[i] = value;
i++;
}
return returnValues;
}
public static <T> List<T> toList(T[] targetValues) {
if (targetValues == null) {
Collections.emptyList()
}
return Arrays.asList(targetValues);
}
}
出力結果
ID : 1
Name : Mike
DateTime : 2016/07/13 22:07:56.136
ID : 2
Name : Tom
DateTime : 2016/07/13 22:07:56.163
ID : 3
Name : Smith
DateTime : 2016/07/13 22:07:56.163
************************
ID : 1
Name : Mike
DateTime : 2016/07/13 22:07:56.136
ID : 2
Name : Tom
DateTime : 2016/07/13 22:07:56.163
ID : 3
Name : Smith
DateTime : 2016/07/13 22:07:56.163