package utilities;
import java.util.*;
public class CollectionDemo2 {
/**
* @Collections
*/
public static void main(String[] args) {
/*
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
sop("原list::"+list);
Collections.fill(list, "pp"); //全部替换
Collections.replaceAll(list, "aaa", "pp");//按元素替换
Collections.reverse(list);//反转
sop("后来list::"+list);
*/
orderDemo();
}
public static void orderDemo(){
//TreeSet<String> ts = new TreeSet<String>(); //自然顺序排列
//TreeSet<String> ts = new TreeSet<String>(new StrComparator()); //自定义顺序排列,要实现Comparator接口,复写compare方法
//TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder()); //直接反转排序,不需要额外工作
//TreeSet<String> ts = new TreeSet<String>(new StrLengthComparator());//按长度(从短到长)排序,长度相同的又按字母排序
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new StrLengthComparator()));//按长度(从长到短)排序,长度相同的又按字母排序
ts.add("abcd");
ts.add("aaa");
ts.add("k");
ts.add("cc");
Iterator it = ts.iterator();
while(it.hasNext()){
sop(it.next()); //aaa->abcd->ccc->kkk
}
}
public static void sop(Object obj){
System.out.println(obj);
}
}
class StrComparator implements Comparator<String>{
public int compare(String s1,String s2){
//return s2.compareTo(s1); //自然顺序反向排序
/*
int num = s1.compareTo(s2);
if(num>0)
return -1;
if(num<0)
return 1;
return num;
*/
return s1.compareTo(s2); //自然顺序排列,直接调用
}
}
class StrLengthComparator implements Comparator<String>{
public int compare(String s1,String s2){
if(s1.length()>s2.length())
return 1;
if(s1.length()<s2.length())
return -1;
return s1.compareTo(s2);
}
}