列表、集合与数组之间相互转换

  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("\n");
 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 

 

posted @ 2018-02-21 21:58  celineluo  阅读(1696)  评论(0编辑  收藏  举报