您的位置:首页 > 移动开发 > Objective-C

数组和Collection之间的转换

2011-04-28 10:56 357 查看
 在Java 编程中,通常会用到数组和Collection、Map之间的转换。

 

1. 数组转Collection

 

import java.util.*

 

String [] str={"aa", "bb","cc"};

List list=Arrays.asList(str);

通过调用工具类Arrays的asList静态方法将数组转为list ,这时list的长度为参数数组的大小,不能通过add来添加元素。

当然也可以通过for循环来逐个向list里添加元素。

 

2. Collection转数组

 

在JDK里Collection接口类中提供了两个实现方法

toArray()  // 返回Object[]

toArray(T[] array)  //返回T[]

这两个方法返回原Collection包含所有元素的数组

 

3. Map转Collection、Set

HashMap或TreeMap通过调用values方法才能转为值的Collection

HashMap或TreeMap通过调用keySet方法才能转换为键的Set

 

下面通过实例来说明

public class TestArrayAndCollection {
public static void main (String []args){
String []str1={"aaa","bbb","ccc","ddd"};
List<String> list=new ArrayList<String>();
for(int i=0;i<str1.length;i++){
list.add(str1[i]);
}
list.add("fff");
System.out.println("取數組元素,調用add轉為list: "+list);

List<String> list1=Arrays.asList(str1);//調用數組轉list方法,且list長度不可改變
//list1.add("eee"); 不能動態增加
System.out.println("調用asList將數組轉換為list1: "+list1);

List<String> list2=new ArrayList<String>();
list2.addAll(list1);
list2.add("ggg");
System.out.println("調用add,addAll轉為list2: "+list2);

Object[]obj1=list1.toArray();//調用List的toArray方法將list轉為數組對象
System.out.print("調用toArray轉換為數組:");
for(Object s:obj1){
System.out.print(s+","); }

System.out.println();
System.out.print("先將數組轉List,再將List轉為Set:");
Set<Object> set2=new HashSet<Object>(Arrays.asList(str1));//數組轉為list,再將list轉為set
System.out.print(set2);
System.out.println();
System.out.print("調用toArray將Set轉為數組:");
Object[] obj2=set2.toArray();
for(Object s:obj2){
System.out.print(s+","); }
}
}


 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息