1 package com.jdk7.chapter4; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.HashSet; 6 import java.util.Iterator; 7 import java.util.List; 8 import java.util.Set; 9 10 /** 11 * List和Set转换为数组,使用List的toArray方法转换为Object[],如果List/Set中元素都为同一个数据类型A,则可以转换为A[],具体方法为"(A[])new A[0]" 12 * 数组转换为List,使用Arrays的asList方法 13 * 数组转换为Set分两步,第一步将数组转换为List,再将List作为带参的Set构造函数 14 * @author Administrator 15 * 16 */ 17 public class ArrayCollectionTest { 18 public static void printList(List list){ 19 if(list==null){ 20 System.out.println("列表不能为空"); 21 } 22 System.out.print("列表展示为: "); 23 for(int i=0;i<list.size();i++){ 24 System.out.print(list.get(i)+" "); 25 } 26 System.out.println(); 27 } 28 29 public static void printSet(Set set){ 30 if(set==null){ 31 System.out.println("集合不能为空"); 32 } 33 Iterator it = set.iterator(); 34 System.out.print("集合展示为: "); 35 while(it.hasNext()){ 36 System.out.print(it.next()+" "); 37 } 38 System.out.println(); 39 } 40 41 public static String printArray(Object[] obj){ 42 if(obj==null){ 43 System.out.println("array is empty!"); 44 return null; 45 } 46 StringBuffer sb = new StringBuffer(" "); 47 for(int i=0;i<obj.length;i++){ 48 sb.append(obj[i]).append(" "); 49 } 50 sb.append(" "); 51 return sb.toString(); 52 } 53 54 public static void main(String[] args) { 55 ArrayCollectionTest act = new ArrayCollectionTest(); 56 List list = new ArrayList(); 57 list.add("ssss"); 58 list.add("ffff"); 59 list.add("2222"); 60 list.add("kkkk"); 61 Object[] array1 = list.toArray(); 62 System.out.println("列表转换为数组后为>"+act.printArray(array1)); 63 Object[] array2 = (String[])list.toArray(new String[0]); 64 System.out.println("列表转换为元素类型数组后为>"+act.printArray(array2)); 65 66 System.out.print("数组转换为List后>"); 67 List list1 = Arrays.asList(array1); 68 act.printList(list1); 69 System.out.print("清空后的List为>"); 70 list.clear(); 71 act.printList(list); 72 System.out.print("添加由List转换为数组后的List为>"); 73 for(int i=0;i<array1.length;i++){ 74 list.add(array1[i]); 75 } 76 act.printList(list); 77 78 Set set = new HashSet(); 79 set.add("jjjj"); 80 set.add("rrrr"); 81 set.add("kkkk"); 82 set.add("oooo"); 83 Object[] array3 = set.toArray(); 84 System.out.println("集合转换为数组后为>"+act.printArray(array3)); 85 Object[] array4 = set.toArray((String[])new String[0]); 86 System.out.println("集合转换为集合元素类型数组后>"+act.printArray(array4)); 87 88 System.out.print("数组转换为Set,首先将数组转换为List,再将List作为带参的Set构造函数>"); 89 act.printSet(new HashSet(Arrays.asList(array3))); 90 91 System.out.print("清空后集合为>"); 92 set.clear(); 93 act.printSet(set); 94 System.out.print("添加由数组转换后的List后集合为>"); 95 set.addAll(list1); 96 act.printSet(set); 97 } 98 } 99 100 执行结果: 101 列表转换为数组后为> ssss ffff 2222 kkkk 102 103 列表转换为元素类型数组后为> ssss ffff 2222 kkkk 104 105 数组转换为List后>列表展示为: ssss ffff 2222 kkkk 106 清空后的List为>列表展示为: 107 添加由List转换为数组后的List为>列表展示为: ssss ffff 2222 kkkk 108 集合转换为数组后为> jjjj oooo rrrr kkkk 109 110 集合转换为集合元素类型数组后> jjjj oooo rrrr kkkk 111 112 数组转换为Set,首先将数组转换为List,再将List作为带参的Set构造函数>集合展示为: jjjj oooo rrrr kkkk 113 清空后集合为>集合展示为: 114 添加由数组转换后的List后集合为>集合展示为: 2222 ssss kkkk ffff