黑马程序员--数组与集合互相转变

--------- android培训java培训期待与您交流 ---------

7 数组与集合的相互转变

7.1 数组转变成集合

1,为什么把数组转变成集合呢?有什么好处呢?

 

数组转变成集合后,就可以使用集合的思想和方法来操作数组中的元素。

 

  注意:将数组变成集合,不可以使用集合的增删方法。
  因为数组的长度是固定。

 但是下面用这些集合的方法就很容易操作数组了
  contains(),查询是否包含某元素
  get(),取得数组中的元素,而不再用for循环去遍历取得
  indexOf(),查询该元素的索引
  subList();是否包含某一字串

 

  如果你增删。那么会反生UnsupportedOperationException,

 

2,数组转变集合时,数组中元素在集合中是什么成分

  •   如果数组中的元素都是对象。那么变成集合时,数组中的元素就直接转成集合中的元素。
  •   如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。

3,数组转变成集合的方法

Arrays:用于操作数组的工具类。
里面都是静态方法。

asList():把数组转变成集合

现举例如下:

 

数组转变成集合
 1 import java.util.*;
 2 class  ArraysDemo
 3 {
 4     public static void main(String[] args) 
 5     {
 6 //        int[] arr = {2,4,5};
 7 //        System.out.println(Arrays.toString(arr));
 8 
 9 
10         String[] arr = {"abc","cc","kkkk"};
11 
12                                 //把数组转变成集合
13         List<String> list = Arrays.asList(arr);
14         //sop("contains:"+list.contains("cc"));//判断是否包含某个元素,直接调用list中的contains()方法
15         //list.add("qq");//UnsupportedOperationException,
16 
17         //sop(list);
18                               //数组中元素是基本数据元素和数组中元素是对象转变成集合的区别
19         //int[] nums = {2,4,5};
20         Integer[] nums = {2,4,5};
21 
22         
23         List<Integer> li = Arrays.asList(nums);
24 
25         sop(li);
26 
27     }
28                //传统判断数组中是否包含某一元素的方法,要写一方法判断麻烦
29     public static boolean myContains(String[] arr,String key)
30     {
31         for(int x=0;x<arr.length; x++)
32         {
33             if(arr[x].equals(key))
34                 return true;
35         }
36         return false;
37     }
38     
39     public static void sop(Object obj)
40     {
41         System.out.println(obj);
42     }
43 
44 }

 

7.2  集合转变成数组
1,为什么要将集合变数组?
  为了限定对元素的操作。不需要进行增删了。

2,定义数组的时候要指定数组的长度,那么怎样定义呢?

  • 当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组。长度为集合的size。  
  • 当指定类型的数组长度大于了集合的size,就不会新创建了数组。而是使用传递进来的数组。
  • 所以创建一个刚刚好的数组最优,即数组长度等于集合的size。

3,集合变成数组的方法

用的是Collection接口中的toArray方法。

 

举例如下:

 

集合变成数组
 1 import java.util.*;
 2 class  CollectionToArray
 3 {
 4     public static void main(String[] args) 
 5     {
 6         ArrayList<String> al = new ArrayList<String>();
 7 
 8         al.add("abc1");
 9         al.add("abc2");
10         al.add("abc3");
11         //集合变成数组,数组的长度等于集合的长度
12         String[] arr = al.toArray(new String[al.size()]);
13 
14         System.out.println(Arrays.toString(arr));
15 
16     }
17 }

 

 

 

 

 

 --------- android培训java培训期待与您交流 ----------

 

                             详细请查看:http://edu.csdn.net/heima/

 

posted on 2012-08-06 16:53  doublewinwin  阅读(346)  评论(0编辑  收藏  举报