排序
//熟悉Collections的所有方法
import java.util.*;
public class CollectionsTest{
public static void main(String[] args){
List<Integer> list = new ArrayList<Integer>();
list.add(55);
list.add(new Integer(99));
list.add(new Integer(33));
list.add(new Integer(11));
list.add(new Integer(66));
System.out.println("-----原始-----");
System.out.println(list);
System.out.println("-----反转-----");
Collections.reverse(list);//StringBuffer也有反转
System.out.println(list);
System.out.println("-----置换-----");//打乱顺序
Collections.shuffle(list);
System.out.println(list);
System.out.println("-----升序-----");
Collections.sort(list);
System.out.println(list);
System.out.println("-----自定义排序-----");
Collections.sort(list,new Comparator<Integer>(){
public int compare(Integer n,Integer o){
return o-n;
}});
System.out.println(list);
System.out.println("-----交换-----");
Collections.swap(list,1,2);
System.out.println(list);
System.out.println("-----轮换2-----");
Collections.rotate(list,2);//间隔2个
System.out.println(list);
System.out.println("-----轮换-2-----");
Collections.rotate(list,-2);//间隔2个
System.out.println(list);
}
}
查找替换
public class CollectionsTest{
public static void main(String[] args){
List<Integer> list = new ArrayList<Integer>();
list.add(55);
list.add(new Integer(99));
list.add(new Integer(55));
list.add(new Integer(11));
list.add(new Integer(66));
//list.add(null);
List<Integer> list2 = new ArrayList<Integer>();
list2.add(55);
list2.add(new Integer(110));
System.out.println("-----原始-----");
System.out.println(list);
System.out.println("-----最大-----");
System.out.println(Collections.max(list));//里面是collection元素,所以有null时会出错。
System.out.println("-----替换成自定义数-----");
//返回替换是否成功
System.out.println(Collections.replaceAll(list,11,110));
System.out.println(list);
System.out.println("-----查找出现的次数-----");
System.out.println(Collections.frequency(list,55));//里面是collection元素,所以有null时会出错。
System.out.println(list);
System.out.println("-----list的匹配,没有返回-1-----");
System.out.println(Collections.indexOfSubList(list,list2));
System.out.println(list);
System.out.println(Collections.lastIndexOfSubList(list,list2));
System.out.println(list);
//按自然顺序寻找
System.out.println("-----按自然顺序寻找,排序后才可以用二分法-----");
Collections.sort(list);
System.out.println("-----排序小到大-----");
System.out.println(list);
System.out.println(Collections.binarySearch(list,11));//1
// List<String> list2 =Collections.synchronizedList(new LinkedList<String>());
// Set<String> set = Collections.synchronizedSet(new HashSet<String>());
// Map<Integer,String> map = Collections.synchronizedMap(new HashMap<Integer,String>());
System.out.println("-----按自定义顺序查找—大到小—————");
Collections.sort(list,new Comparator<Integer>(){
public int compare(Integer n,Integer o){
return o-n;///大到小
}
});
System.out.println("-----排序大到小-----");
System.out.println(list);
System.out.println(Collections.binarySearch(list,66));//3
System.out.println(list);
System.out.println("-----全部替换-----");
Collections.fill(list,11);
System.out.println(list);
}
}
同步控制
List<String> list2 =Collections.synchronizedList(new LinkedList<String>());
//也可以用ArrayList
Set<String> set = Collections.synchronizedSet(new HashSet<String>());
Map<Integer,String> map = Collections.synchronizedMap(new HashMap<Integer,String>());