Java学习之路(16)----Collections

排序

//熟悉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>());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值