• java集合使用——TreeSet


    TreeSet是一个有序的集合。

    第一:构造、增加、遍历、删除和判断是否包含某个元素同HashSet是一致的。、

    第二:证明TreeSet是一个有序的集合。

    TreeSet hashSet = new TreeSet();

      hashSet.add("a"); //向集合中添加一个字符串
      hashSet.add("e");
      hashSet.add("b");
      hashSet.add("d");
      hashSet.add("c");


      Iterator it = hashSet.iterator();
      while(it.hasNext()){
       System.out.println(it.next()+",");
      }

    输出结果是:

    a,
    b,
    c,
    d,
    e,

    注意:(1)从结果中可以看出元素被排序了,但是这个用默认的排序方法。如何自定义排序呢?可以实现Comparator接口来自定义排序。例如:

    import java.util.Comparator;

    import ws.wph.android.util.StringUtils;

    public class MyCmp implements Comparator {
     public int compare(Object element1, Object element2) {
      int x = element2.toString().compareTo(element1.toString());
      return x;
     }
      
    }

      然后将该类的对象作为TreeSet构造方法的实参,即TreeSet hashSet = new TreeSet(new MyCmp());。原理是:向TreeSet增加元素时,自动调用MyCmp类的compare(Object element1, Object element2)方法,根据方法返回值决定element1和element2的顺序。(此时的输出结果是:e,
    d,
    c,
    b,
    a,)

    (2)当element1 == element2时返回0,element1 > element2 返回正数,element1 < element2返回负数。

    第三:按照学生成绩排序,当成绩相同时按照学号排序

    public int compare(Object element1, Object element2) {
      int x=0;
      Stuendt s1 = (Stuendt)element1;
      Stuendt s2 = (Stuendt)element2;
      if(s1.getScore() > s2.getScore()){
       x=-1;
      }else if(s1.getScore() < s2.getScore()){
       x=1;
      }else{
       x = s1.getSno().compareTo(s2.getSno());
      }
      return x;
     }

     (3)将汉字转换成拼音

    public static String getPingYin(String src){
      char[] t1 = null;
      t1=src.toCharArray();
      String[] t2 = new String[t1.length];
      HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
      t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
      t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
      t3.setVCharType(HanyuPinyinVCharType.WITH_V);
      String t4="";
      int t0=t1.length;
      try {
       for (int i=0;i<t0;i++)
       {
        //判断是否为汉字字符
        if(java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+"))
        {
         t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
         t4+=t2[0];
        }
        else
         t4+=java.lang.Character.toString(t1[i]).toLowerCase();
       }
       return t4;
      }catch (BadHanyuPinyinOutputFormatCombination e1) {
       e1.printStackTrace();
      }
      return t4;
     }

    但是需要导入一个包

  • 相关阅读:
    【Pandas最好用的函数】
    【自动下单外挂】
    【爬取新浪股票实时数据--tushare】
    linux入门:设置代理服务器
    nginx入门(3):静态服务搭建
    nginx入门(2):配置文档结构
    nginx入门(1):开启,关闭,重新加载配置文件
    SELinux的开启和关闭
    centos7 播放网页flash视频
    索引最左前缀匹配原则
  • 原文地址:https://www.cnblogs.com/suinuaner/p/javaset_treeset.html
Copyright © 2020-2023  润新知