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[]をパラメータとして入力します.