《黑马程序员》 TreeSet集合练习之 按照字符串长度排序

来源:互联网 发布:淘宝 洗照片 编辑:程序博客网 时间:2024/05/19 02:23
public class TreeSetTest {/** * 按照字符串长度排序 */public static void main(String[] args) {TreeSet ts=new TreeSet(new MyComp2());ts.add("abcd");ts.add("baca");ts.add("aead");ts.add("cc");ts.add("z");ts.add("hahaha");ts.add("hag");Iterator ite=ts.iterator();while(ite.hasNext()){String s=(String)ite.next();System.out.println(s);}}}//主要条件满足时再判断一下次要条件class MyComp2 implements Comparator{/*@Overridepublic int compare(Object o1,Object o2){if(!(o1 instanceof String && o2 instanceof String))throw new RuntimeException("实例对象不符");String s1=(String)o1;String s2=(String)o2;if(s1.length()>s2.length())return -1;if(s1.length()==s2.length()){  //除了要判断字符串长度以外还要判断字符串//return 0;return s1.compareTo(s2);  //按照字符串进行比较一次}return 1;}  第一种方式*///第二种方式@Overridepublic int compare(Object o1,Object o2){if(!(o1 instanceof String && o2 instanceof String))throw new RuntimeException("实例对象不符");String s1=(String)o1;String s2=(String)o2;//Integer包装类也可以进行比较的//我们使用它来比较两个字符串的长度然后将返回值直接返回int num=new Integer(s1.length()).compareTo(new Integer(s2.length()));if(num==0)return s1.compareTo(s2);  //如果长度=0则让两个字符串进行比较。这个是按字典的顺序进行比较的return num;}}


0 0