Java中Collections与Arrays

一、Collections:常见方法:

1、 对list进行二分查找:前提该集合一定要有序。

      int binarySearch(list,key);    必须根据元素自然顺序对列表进行升级排序

      int binarySearch(list,key,Comparator);  要求list 集合中的元素都是Comparable 的子类。

2、对list集合进行排序。

      sort(list);   对list进行排序,其实使用的事list容器中的对象的compareTo方法

      sort(list,comaprator);  按照指定比较器进行排序

3、对集合取最大值或者最小值。

       max(Collection)

      max(Collection,comparator)

      min(Collection)

      min(Collection,comparator)
4、对list集合进行反转。

      reverse(list);

5、对比较方式进行强行逆转。

    Comparator reverseOrder();

    Comparator reverseOrder(Comparator);

6、对list集合中的元素进行位置的置换。

       swap(list,x,y);

7、对list集合进行元素的替换。如果被替换的元素不存在,那么原集合不变。

     replaceAll(list,old,new);

8、可以将不同步的集合变成同步的集合。

     Set synchronizedSet(Set<T> s)

    Map synchronizedMap(Map<K,V> m)

    List synchronizedList(List<T> list)

9、如果想要将集合变数组:

      可以使用Collection 中的toArray 方法。注意:是Collection不是Collections工具类,传入指定的类型数组即可,该数组的长度最好为集合的size。

二、Arrays:用于对数组操作的工具类

1、二分查找,数组需要有序

     binarySearch(int[])

     binarySearch(double[])

2、数组排序

    sort(int[])

    sort(char[])……

1、 将数组变成字符串。

     toString(int[])

2、 复制数组。
      copyOf();

3、 复制部分数组。

      copyOfRange():

4、 比较两个数组是否相同。

     equals(int[],int[]);

5、 将数组变成集合。

     List asList(T[]);

这样可以通过集合的操作来操作数组中元素,但是不可以使用增删方法,add,remove。因为数组长度是固定的,会出现UnsupportOperationExcetion。

可以使用的方法:contains,indexOf。。。

    如果数组中存入的基本数据类型,那么asList会将数组实体作为集合中的元素。

    如果数组中的存入的引用数据类型,那么asList会将数组中的元素作为集合中的元素。

实例代码:

 1 import java.util.ArrayList;
 2 import java.util.Collections;
 3 import java.util.Arrays;
 4 import java.util.List;
 5 class Demo1 
 6 {
 7     public static void main(String[] args)
 8     {
 9         ArrayList<Integer> list = new ArrayList<Integer>();
10         list.add(4);
11         list.add(3);
12         list.add(1);
13         list.add(2);
14         list.add(3);
15         // 排序
16         Collections.sort(list);
17         // 折半查找的前提是排序好的元素
18         System.out.println( Collections.binarySearch( list , 8 ) );  // 找不到返回-插入点-1
19         // 反序集合输出
20         Collections.reverse( list );
21         System.out.println( list );
22         // 求最值
23         System.out.println( Collections.max( list ) );   // 4
24         // fill()  使用指定的元素替换指定集合中的所有元素
25         // Collections.fill( list, 5 );
26         System.out.println( list );
27 
28         // 将数组转换为集合
29         Integer is[] = new  Integer[]{6,7,8};
30         List<Integer> list2 =  Arrays.asList(is);
31         list.addAll( list2 );
32         System.out.println( list );
33 
34         // 将List转换为数组
35         Object [] ins =  list.toArray();
36         System.out.println( Arrays.toString( ins ) );
37    
38 
39     }
40 }

 

posted @ 2016-12-08 11:01  LXQLCCC  Views(232)  Comments(0Edit  收藏  举报