Collections里面的一些方法

package test;


import java.util.*;
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.locks.Lock;

import privateclass.*;
import java.io.*;

public class Main {

	private static final String space_operator = " ";
	public static void main(String[] args) throws Exception {

		Scanner scanner = new Scanner(new BufferedInputStream(System.in));
		PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
		
		List<String> list = new ArrayList<String>();
		
		list.add("shanghai");
		list.add("zhuzhu");
		list.add("tiasnxia");
		list.add("ab");
		
		
		//工具类里面的sort方法
		System.out.println(list);
		Collections.sort(list);
		
		System.out.println(list);
		
		sortlist(list);
		System.out.println(list);
		
		Collections.sort(list, new Comparelength());
		System.out.println(list);
		
		sortlist1(list, new Comparelength());
		System.out.println(list);
		
		//二分查找
		//找到位置返回正数,找不到就返回负数-1
		int index = Collections.binarySearch(list, "xiaoxiao");
		System.out.println(index);
		
		//查找最大值
		String max = Collections.max(list);
		System.out.println(max);
		
		//查找自己想要的最大值
		String max2 = Collections.max(list,new Comparelength());
		System.out.println(max2);
		
		//将list直接反转
		Collections.reverse(list);
		System.out.println(list);
		
		//将原来的一些元素直接替换成自己想要的元素
		Collections.replaceAll(list, "shanghai", "不离不弃");
		System.out.println(list);
		
		//我们可以自己定义Comparator比较器进行比较实现一个匿名内部类
		/*TreeSet<String> set = new TreeSet<String>(new Comparator<String>() {

			@Override
			public int compare(String o1, String o2) {
				int temp = o2.length() - o1.length();
				return temp == 0 ? o2.compareTo(o1) : temp;
			}
		});
		
		set.add("aa");
		set.add("bb");
		set.add("aabbcc");
		set.add("zhis");
		System.out.println(set);
		*/
		
		//我们可以直接用到Collections中的方法reverseOrder
		/*
		TreeSet<String> set = new TreeSet<String>(Collections.reverseOrder());
		
		set.add("aa");
		set.add("bb");
		set.add("aabbcc");
		set.add("zhis");
		System.out.println(set);
		*/	
		
		//我们还以对自己实现的比较器进行反转
		/*
		TreeSet<String> set = new TreeSet<String>(Collections.reverseOrder(new Comparelength()));
		set.add("aa");
		set.add("bb");
		set.add("aabbcc");
		set.add("zhis");
		System.out.println(set);
		*/
		
		//我们可以用Collections里面的synchronized方法将这个线程变成安全的
		list = Collections.synchronizedList(list);
		
		//将集合里面的东西全部填充成为傻吊
		//Collections.fill(list, "傻吊");
		
		Collections.shuffle(list);
		System.out.println(list);
		
}
	
	private static <T extends Comparable<? super T>>void sortlist(List<T> list) {
		// TODO Auto-generated method stub
		for (int i = 0; i < list.size() - 1; i ++) {
			for(int j = i + 1; j < list.size(); j ++)
			{
				if(list.get(i).compareTo(list.get(j)) > 0)
				{
					Collections.swap(list, i, j);
				}
			}
		}
	}
	
	
	private static <T extends Comparable<? super T>>void sortlist1(List<T> list,Comparator<? super T> comp) {
		// TODO Auto-generated method stub
		for (int i = 0; i < list.size() - 1; i ++) {
			for(int j = i + 1; j < list.size(); j ++)
			{
				if(comp.compare(list.get(i), list.get(j)) > 0)
				{
					Collections.swap(list, i, j);
				}
			}
		}
	}
}

  

posted @ 2019-11-03 19:57  WINDZLY  阅读(159)  评论(0)    收藏  举报