listと配列間の変換
1402 ワード
public class Test
{
public static void main(String[] args)
{
String[] strs = new String[] {"aaaaaaa", "b", "c", "d"};
List<String> list=new ArrayList<String>();
for(String str:strs){
list.add(str);
}
list.add("e");
//String[] strArray = new String[list.size()];
//list
String[] strArray1 = (String[])list.toArray(new String[list.size()]);
System.out.println(strArray1);
// list
List<String> list1 = Arrays.asList(strArray1);
System.out.println(list1);
}
}
集合リストが配列に変換されたことを覚えておいてください.
String[] strArray1 = (String[])list.toArray(new String[list.size()]);String[]strArray 1=(String[])listと書くとtoArray();objectタイプをStringタイプに変換できないと報告されます.
ここには奇妙な現象があります.
int[] ints = {1, 3, 2, 5, 6};
System.out.println(ints);
System.out.println(Arrays.asList(ints));
出力の結果:
[I@de6ced[[I@de6ced]ここには上の文字列の配列のように中の値が印刷されていません.
これはjdk 1のためである.4中だasList(Object[objs],String[配列,ここでのStringはObjectタイプなのでLIstに変換するがint(他の基本タイプもそうであるchar,float…)はObjectタイプではないのでjdk 1を採用する.5の中のasList(T...a)は、int[]をパラメータとして入力します.