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));//2
System.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