A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 战狼 中级黑马   /  2014-4-23 16:52  /  1141 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 战狼 于 2014-4-25 14:24 编辑

最后一个提问是:寻找集合中小于字符串“By“的元素:
  1. public class TreeSetDemo2 {
  2.         public static void main(String[] args) {
  3.                         String str = "Everthing has an end";
  4.                         String str1= "Good to begin well, better to end well";
  5.                         String str2 = "You cabbot tell a book by its cover";
  6.                         String str3= "A good book is a light to the soul";
  7.                         
  8.                         TreeSet<String> ts = new TreeSet<String>();
  9.                         
  10.                         ts.add(str);
  11.                         ts.add(str1);
  12.                         ts.add(str2);
  13.                         ts.add(str3);
  14.                         System.out.println(ts);
  15.                         
  16.                         System.out.println("第一个元素:"+ts.first());
  17.                         System.out.println("最后一个元素:"+ts.last());
  18.         }
  19. }
复制代码

2 个回复

倒序浏览
你能把你的问题再详细点么!
回复 使用道具 举报
本帖最后由 Tking 于 2014-4-24 03:06 编辑

如果是自然比较,可以用两种简单的方法。第一种
思路:将集合内每个元素,进行迭代,迭代的同事进行比较,与“By”比较<0的则是小于“By”的元素

  1. for(Iterator<String> it=ts.iterator();it.hasNext();)
  2.             {
  3.                     String temp=it.next();
  4.                     if(temp.compareTo("By")<0)
  5.                             System.out.println("小于By的元素="+temp);
  6.             }
复制代码

第二种
思路:先存进一个“By”元素,由于TreeSet集合自带自然比较方法,而且String 实现了Comparable,所以只需要迭代元素,当迭代出“By”时,就break;
因为“By"元素前面的都是比它小的,而后面的自然比它大。
  1. ts.add("By");
  2.             for(Iterator<String> it=ts.iterator();it.hasNext();)
  3.             {
  4.                     String temp=it.next();
  5.                     if(temp.equals("By"))
  6.                             break;
  7.                     System.out.println("小于By的元素="+temp);
  8.             }
复制代码
如果是需要比较字符串长度小于”By“
也可以采取两种比较简单的方法
第一种:将集合迭代,每个进行length比较,小于By。length的都打印,

第二种:建立一个比较器,强制比较String。length,然后迭代到By就break。

思路都是一样,代码就不写了。

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马