はじめに
積み上げ棒グラフを作るのにタイトルのことをやる必要があるので検証しました。
最初はクラス固定で実装しましたが、ジェネリクスを使って汎用的にしようとしたら躓いたので忘れないようにメモ。
環境
java8
ソース
2つのIntegerのリストからInteger配列の1つのリストへ
2つのリストはサイズが同じ前提です。
Integer版
private List<Integer[]> convertTwoListToArray1(List<Integer> list1, List<Integer> list2) {
List<Integer[]> list = new ArrayList<>();
for (int i = 0; i < list1.size(); i++) {
list.add(new Integer[] { list1.get(i), list2.get(i) });
}
return list;
}
汎用的にしようとしたジェネリクス版がこちら
ジェネリクス版
@SuppressWarnings("unchecked")
private <T> List<T[]> convertTwoListToArray2(List<T> list1, List<T> list2) {
List<T[]> list = new ArrayList<>();
for (int i = 0; i < list1.size(); i++) {
Object[] tmpArray = new Object[] { list1.get(i), list2.get(i) };
list.add((T[]) tmpArray);
}
return list;
}
最後に
ジェネリクスの配列が作れなくて躓いたけど、Objectの配列をキャストすることで解決しました。
以上