Java 集合与数组相互转换

一、数组转集合

 //数组转集合
 String [] strs = {"12", "13", "14"};
 List<String> stringList = Arrays.asList(strs);
 // stringList.add("16");   数组转成的集合,不可添加
 //asList的返回对象是一个ArrayList, 
 //此处的ArrayList是Arrays的内部类.没有add()方法
 System.out.println(stringList.toString());
 for (String str : stringList) {
            System.out.println(str);
 }

二、集合转数组

1、ArrayList的toArray,toArray有两个重载的方法:

(1)list.toArray();

//将list直接转为Object[] 数组;
ArrayList<String> list=new ArrayList<String>();
for (int i = 0; i < 10; i++) {
    list.add(""+i);
}
String[] array= (String[]) list.toArray();
运行报错:
不能将Object[] 转化为String[],转化的话只能是取出每一个元素再转化。java中的强制类型转换只是针对单个对象的,想要偷懒将整个数组转换成另外一种类型的数组是不行的,这和数组初始化时需要一个个来也是类似的。
//单个转化
Object[] arr = list.toArray();
for (int i = 0; i < arr.length; i++) {
    String e = (String) arr[i];
    System.out.println(e);
}

(2)list.toArray(T[]  a);

 String[] array =new String[list.size()];
 list.toArray(array);

  //集合转数组
  ArrayList<String> strings = new ArrayList<String>();
  for (int i=0; i<10; i++) {
       strings.add(String.valueOf(i));
  }
  String[] strs = strings.toArray(new String[strings.size()]);

2、使用set 去重转换

 Set<String> set = new HashSet<String>();
 for (int i = 0; i < object.size(); i++) {
     set.add(object.get(i).toString());//object里有重复的数据,采用set去除重复的数据
 }
 String[] strs = new String[set.size()];    
  //Set-->数组    
 set.toArray(str); 

  

参考:https://www.cnblogs.com/goloving/p/7693388.html

posted @ 2021-08-16 11:20  唏嘘-  阅读(1696)  评论(0编辑  收藏  举报