Java中的Set、List和数组互相转换:
1、数组转List:Arrays.asList(arr)
public static void main(String[] args){
Integer[] arr = new Integer[]{1,2,3};
List<Integer> list = Arrays.asList(arr);
for(Integer i : list){
System.out.println(i);
}
}
使用asList方法会返回一个固定长度的List,不可add或remove,否则会报java.lang.UnsupportedOpera。
如果想要返回可变列表,则需要将数组里的元素遍历加到List中:
public static void main(String[] args){
Integer [] arr = new Integer[]{1,2,3};
List<Integer> list = new ArrayList<Integer>();
if(arr!=null&&arr.length!=0){
for(int i =0;i<arr.length;i++){
list.add(arr[i]);
}
}
}
2、数组转Set:先使用Arrays.asList(arr)
再转换为Set
public static void main(String[] args){
Integer[] arr = { 1 , 2 , 3 };
Set<Integer> set = new HashSet(Arrays.asList(arr));
for(Integer i : set) {
System.out.println(i);
}
}
3、List转数组:list.toArray();
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
Object[] arr = list.toArray();
for(Object o : arr) {
System.out.println(o);
}
}
4、Set转数组:set.toArray();
public static void main(String[] args) {
Set<Integer> set = new HashSet<Integer>();
set.add(1);
set.add(2);
Object[] arr = set.toArray();
for(Object o : arr) {
System.out.println(o);
}
}
5、List转Set:转换过程中要保证类型一致,否则会报类型转换异常
public static void main(String[] args){
List<Integer> l = new ArrayList<Integer>();
Set<Integer> s = new HashSet(l);
}
6、Set转List:和上述List转Set的方式相同
public static void main(String[] args){
Set<Integer> s = new HashSet<Integer>();
List<Integer> l = new ArrayList<Integer>(s);
}