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);
}
}
}
}
}