集合框架-Collections

来源:互联网 发布:python绝技 pdf 中文 编辑:程序博客网 时间:2024/05/19 05:33

2:Collections(理解)   

(1)是针对集合进行操作的工具类

(2)面试题:Collection和Collections的区别

    A:Collection  是单列集合的顶层接口,有两个子接口List和Set

    B:Collections 是针对集合进行操作的工具类,可以对集合进行排序和查找等

(3)常见的几个小方法:

    A:public static <T> void sort(List<T> list) 排序 默认情况下是自然顺序

    B:public static <T> int binarySearch(List<?> list,T key) 二分查找

    C:public static <T> T max(Collection<?> coll) 最大值

    D:public static void reverse(List<?> list) 反转

    E:public static void shuffle(List<?> list) 随机置换

package cn.itcast_01;import java.util.Collections;import java.util.List;import java.util.ArrayList;/* * Collections:是针对集合进行操作的工具类,都是静态方法。 *  * 面试题: * Collection和Collections的区别? * Collection:是单列集合的顶层接口,有子接口List和Set。 * Collections:是针对集合操作的工具类,有对集合进行排序和二分查找的方法 *  * 要知道的方法 * public static <T> void sort(List<T> list):排序 默认情况下是自然顺序。 * public static <T> int binarySearch(List<?> list,T key):二分查找 * public static <T> T max(Collection<?> coll):最大值 * public static void reverse(List<?> list):反转 * public static void shuffle(List<?> list):随机置换 */public class CollectionsDemo {public static void main(String[] args) {// 创建集合对象List<Integer> list = new ArrayList<Integer>();// 添加元素list.add(30);list.add(20);list.add(50);list.add(10);list.add(40);System.out.println("list:" + list);// [30, 20, 50, 10, 40]// public static <T> void sort(List<T> list):排序 默认情况下是自然顺序,即实现了自然排序的接口.Collections.sort(list);System.out.println("list:" + list);// [10, 20, 30, 40, 50]// public static <T> int binarySearch(List<?> list,Tkey):二分查找,二分查找之前要先排序System.out.println("binarySearch:" + Collections.binarySearch(list, 30));//2System.out.println("binarySearch:"+ Collections.binarySearch(list, 300));//-6 找不到的时候是最大索引加1// public static <T> T max(Collection<?> coll):最大值System.out.println("max:"+Collections.max(list));//50// public static void reverse(List<?> list):反转Collections.reverse(list);System.out.println("list:" + list);//public static void shuffle(List<?> list):随机置换Collections.shuffle(list);System.out.println("list:" + list);}}

补充:

List<String> allList = Collections.emptyList();// 返回空的List集合

使用Collections.emptyList(),返回一个空的List,但是发现它不支持Add功能,调用Add会抛出unsupportedException,

在以后要返回一个空的List,并还需要后续操作时,不能使用Collections.emptyList()方法,

看文档发现,List的实现类都有自己的实现,而返回的EmptyList的实现没有实现add(int index, E element)方法,使用了

AbstractList.add(int index, E element){

    throw new UnsupportedOperationException();

}

参考:http://www.cnblogs.com/baiduligang/p/4247683.html


0 0
原创粉丝点击