您的位置:首页 > 职场人生

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

2014-04-16 12:14 387 查看
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{
/*@Override
public 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;
}  第一种方式*/

//第二种方式
@Override
public 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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息