Java用Arays.asList初期化ArayList例示方法


JavaでArays.asListを使用してArayListを初期化する。

package xiaoling;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
public class ListTest{
    public static void main(String[] args){
        List<List<Integer>> list = new ArrayList<>();
        for (int num=0; num<10; ++num){
            list.add(new ArrayList(Arrays.asList(num, num+1)));
        }
        System.out.println(list);
    }
}
運転結果は[[0,1],[1,2],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9,10]]です。
拡張学習:
javaはArays.asListを使ってListセットを迅速に作成します。
プログラム中のある実例コードは以下の通りです。

Map<String, List<CronTrigger>> tMap = new HashMap<String, List<CronTrigger>>();
tMap.put(name, Arrays.asList(new CronTrigger[] { trigger }));
プログラム運行に異常があります。java.lang.Unipported Operation Exception
エラーの原因:
Listを迅速に作成するためにArays.asList方法を使用したが、この方法で戻ってくるArayListはjava.util.ArayListオブジェクトではなく、Araysの内部クラスである。
ソースコードを見てもいいです。

Arrays.class:
 @SafeVarargs
  public static <T> List<T> asList(T... a) {
    return new ArrayList<>(a);
  }
---------------------------------------------------
private static class ArrayList<E> extends AbstractList<E>
    implements RandomAccess, java.io.Serializable
  {
    private static final long serialVersionUID = -2764017481108945198L;
    private final E[] a;
    ArrayList(E[] array) {
      if (array==null)
        throw new NullPointerException();
      a = array;
    }
.....
上記のコードでは、内部クラスのArayListがAbstraact Listを継承していることが分かります。
皆さんの学習とサポートに感謝します。