一、数组转集合
//数组转集合 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);