黑马程序员技术交流社区
标题:
请教方法
[打印本页]
作者:
战狼
时间:
2014-4-23 16:52
标题:
请教方法
本帖最后由 战狼 于 2014-4-25 14:24 编辑
最后一个提问是:寻找集合中小于字符串“By“的元素:
public class TreeSetDemo2 {
public static void main(String[] args) {
String str = "Everthing has an end";
String str1= "Good to begin well, better to end well";
String str2 = "You cabbot tell a book by its cover";
String str3= "A good book is a light to the soul";
TreeSet<String> ts = new TreeSet<String>();
ts.add(str);
ts.add(str1);
ts.add(str2);
ts.add(str3);
System.out.println(ts);
System.out.println("第一个元素:"+ts.first());
System.out.println("最后一个元素:"+ts.last());
}
}
复制代码
”
作者:
悠然丶
时间:
2014-4-23 18:17
你能把你的问题再详细点么!
作者:
Tking
时间:
2014-4-24 02:56
本帖最后由 Tking 于 2014-4-24 03:06 编辑
如果是自然比较,可以用两种简单的方法。第一种
思路:将集合内每个元素,进行迭代,迭代的同事进行比较,与“By”比较<0的则是小于“By”的元素
for(Iterator<String> it=ts.iterator();it.hasNext();)
{
String temp=it.next();
if(temp.compareTo("By")<0)
System.out.println("小于By的元素="+temp);
}
复制代码
第二种
思路:先存进一个“By”元素,由于TreeSet集合自带自然比较方法,而且String 实现了Comparable,所以只需要迭代元素,当迭代出“By”时,就break;
因为“By"元素前面的都是比它小的,而后面的自然比它大。
ts.add("By");
for(Iterator<String> it=ts.iterator();it.hasNext();)
{
String temp=it.next();
if(temp.equals("By"))
break;
System.out.println("小于By的元素="+temp);
}
复制代码
如果是需要比较字符串长度小于”By“
也可以采取两种比较简单的方法
第一种:将集合迭代,每个进行length比较,小于By。length的都打印,
第二种:建立一个比较器,强制比较String。length,然后迭代到By就break。
思路都是一样,代码就不写了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2