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>());
发布了53 篇原创文章 · 获赞 4 · 访问量 1317

猜你喜欢

转载自blog.csdn.net/weixin_43351473/article/details/104555577