【Java学習ノート】集合配列変換asListとtoArrayメソッドの使用
1457 ワード
集合配列変換asListとtoArrayメソッドの使用
集合と配列にはそれぞれ優位性がある.配列集合を相互変換するために,ここではArraysにおけるaslist()とArrayListにおけるtoArray()の方法といくつかの注意点を紹介する.
配列ダイバーシティはArraysのaslist()メソッドで使用されます.
ここでの出力は[a,b,c]です.しかし,配列に対する集合の大きな特徴は長さが可変であることであるが,add法で要素を増やすことができるだろうか.
このときプログラムはエラーを報告するので,配列を集合に変換した後は増分操作はできないが,インデックスで要素を検索することができる.またintタイプの配列回転集合を試してみましょう
我々が望む出力は[1,2,3,4,5]であるが,出力はアドレス値
このとき[1,2,3,4,5]が得られた.
集合回転配列はArrayListにおけるtoArray()メソッドを用いる
String[0]に与えられる理由は、配列の長さが集合のsizeより小さい場合、変換された配列が自動的に集合のsizeになるからである
集合と配列にはそれぞれ優位性がある.配列集合を相互変換するために,ここではArraysにおけるaslist()とArrayListにおけるtoArray()の方法といくつかの注意点を紹介する.
配列ダイバーシティはArraysのaslist()メソッドで使用されます.
import java.util.Arrays;
import java.util.List;
String[] arr = {"a","b","c"};
List list = Arrays.asList(arr);//
System.out.println(list);
ここでの出力は[a,b,c]です.しかし,配列に対する集合の大きな特徴は長さが可変であることであるが,add法で要素を増やすことができるだろうか.
list.add("d");
このときプログラムはエラーを報告するので,配列を集合に変換した後は増分操作はできないが,インデックスで要素を検索することができる.またintタイプの配列回転集合を試してみましょう
int[] arr = {1,2,3,4,5};
List list = Arrays.asList(arr);
System.out.println(list);
我々が望む出力は[1,2,3,4,5]であるが,出力はアドレス値
[[I@646007f4]
であり,配列全体を1つのオブジェクトとしているため,配列転集合時にlistに渡されるのは一般的に参照データ型である.Integer[] arr = {1,2,3,4,5};
List list = Arrays.asList(arr);
System.out.println(list);
このとき[1,2,3,4,5]が得られた.
集合回転配列はArrayListにおけるtoArray()メソッドを用いる
import java.util.ArrayList;
import java.util.List;
ArrayList list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
String[] arr = list.toArray(new String[0]);
for (String string : arr) {
System.out.print(string);
}
String[0]に与えられる理由は、配列の長さが集合のsizeより小さい場合、変換された配列が自動的に集合のsizeになるからである