Java用Arays.asList初期化ArayList例示方法
1767 ワード
JavaでArays.asListを使用してArayListを初期化する。
拡張学習:
javaはArays.asListを使ってListセットを迅速に作成します。
プログラム中のある実例コードは以下の通りです。
エラーの原因:
Listを迅速に作成するためにArays.asList方法を使用したが、この方法で戻ってくるArayListはjava.util.ArayListオブジェクトではなく、Araysの内部クラスである。
ソースコードを見てもいいです。
皆さんの学習とサポートに感謝します。
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を継承していることが分かります。皆さんの学習とサポートに感謝します。