java 集合框架-TreeSet练习

来源:互联网 发布:u8用友软件 编辑:程序博客网 时间:2024/06/05 13:22
import java.util.*;/*练习:按照字符串长度排序。字符串本身具备比较性,但是它的比较方式不是所需要的。这时就只能使用比较器注意:在方式二中:      int num=new Integer(str1.length()).compareTo(new Integer(str2.length()));      此时num的值有三种可能。正数、负数、零。千万不要写下面的代码:  if(num==1)return 1;num不一定等于1。我们在函数中返回的0,1,-1只是代表三种情况:零,正数,负数。这个一定要注意。*/class MyCompare implements Comparator  //自定义比较器{public int compare(Object obj1,Object obj2){if(!(obj1 instanceof String) || !(obj2 instanceof String))throw new RuntimeException("不是字符串!");String str1=(String)obj1;String str2=(String)obj2;/*方式一if(str1.length()>str2.length())return 1;if(str1.length()==str2.length()){return str1.compareTo(str2);}return -1;*//*方式二*/int num=new Integer(str1.length()).compareTo(new Integer(str2.length()));if (num==0){return str1.compareTo(str2);}return num;}}//如果没有上面的自定义类,那么TreeSet会按照自然顺序进行排序(字符串的字母自然排序)class TreeSetTest1 {public static void main(String[] args) {TreeSet ts=new TreeSet(new MyCompare());//TreeSet ts=new TreeSet();ts.add("abcd");ts.add("dgf");ts.add("aakuop");ts.add("po");ts.add("hello");ts.add("hello");ts.add("world");ts.add("werttif");ts.add("hello");Iterator it=ts.iterator();while(it.hasNext()){sop((String)it.next());}}public static void sop(Object obj){System.out.println(obj);}}

0 0
原创粉丝点击