class StrComparator implements Comparator<String>
{
public int compare(String s1,String s2)
{
/*
int num = s1.compareTo(s2);
if(num>0)
return -1;
if( num<0)
return 1;
return num;
*/
return s2.compareTo(s1);
}
}
class StrLenComparator 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);
}
}
class CollectionsDemo2
{
public static void main(String[] args)
{
shuffleDemo();
// orderDemo();
}
public static void shuffleDemo()
{
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
list.add("qq");
list.add("z");
sop(list);
/*
static void shuffle(List<?> list) 使用默认随机源对指定列表进行置换
*/
// Collections.shuffle(list);
Collections.reverse(list);
sop(list);
}
public static void orderDemo()
{
/*
static void reverse(List<?> list) 反转指定 列表中元素的顺序。
static <T> Comparator<T> reverseOrder()
返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序
*/
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new StrLenComparator()));
ts.add("abcde");
ts.add("aaa");
ts.add("k");
ts.add("cc");
// sop(ts);
// Collections.reverse(ts);// TreeSet中不能使用reverse.因为reverse反转的是列表中元素的顺序。
// sop(ts);
Iterator it = ts.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
这是第二篇:
import java.util.*;
class Strlencompare implements Comparator<String>
{
public int compare(String st1,String st2)
{
int num1 = st1.length();
int num2 = st2.length();
if(num1>num2)
return 1;
if(num1 < num2)
return -1;
return st1.compareTo(st2);
}
}
class CollectionsDemo2
{
public static void main(String[] args)
{
// fillDemo();
// orderDemo();
replaceAllDemo();
}
public static void replaceAllDemo()
{
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
sop(list);
/*
static <T> boolean replaceAll(List<T> list, T oldVal, T newVal)
使用另一个值替换列表中出现的所有某一指定值
*/
Collections.replaceAll(list,"aaa","qq");
sop(list);
}
public static void orderDemo()
{
// /*
// static void reverse(List<?> list) 反转指定列表中元素的顺序。
// static <T> Comparator<T> reverseOrder()
// 返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序
// */
// TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new Strlencompare()));
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new Strlencompare()));
ts.add("abcde");
ts.add("aaa");
ts.add("k");
ts.add("cc");
for(Iterator<String> it = ts.iterator();it.hasNext();)
{
sop((String)it.next());
}
}
public static void fillDemo()
{
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("aaa");
list.add("zz");
list.add("kkkkk");
sop(list);
/*
public static <T> void fill(List<? super T> list, T obj)
使用指定元素替换指定列表中的所有元素。
*/
Collections.fill(list,"aoao");
sop(list);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}