zoukankan      html  css  js  c++  java
  • java、android拼音,中文姓名排序

    http://blog.sina.com.cn/s/blog_81a9aa7e0100tizj.html

    在java或者是android编程的时候,我们经常要用到对姓名或者其他字符串排序,现在我写写自己曾经做过的列子。
    普通的数组字符串排序,通过构造器来实现:
    假如在main方法中有String name[5] = {"one","张三","李四","王五","two"};
    只要调用Arrays.sort(name,0,5,new Comparents());就可以了。

     
    import java.text.Collator;
        import java.util.Comparator;
        import java.util.Locale;
    public class Comparents implements  Comparator<Object> {
      @Override
          public int compare(Object arg0, Object arg1) {
               String one = (String)arg0;
               String two = (String)arg1;
               Collator ca = Collator.getInstance(Locale.CHINA);
               int flags = 0;
               if (ca.compare(one,two) < 0) {
             flags = -1;
               }
              else if(ca.compare(one,two) > 0) {
                 flags = 1;
               }
              else {
                flags = 0;
               }
              return flags;
         }
    }

    在android中,我们经常要用到HashMap,经常用list存放HashMap,我们对List中的元素进行排序的时候,就要用到构造器了,下面具体用列子说说:

    假如在main方法中有:

           public List<HashMap<String, Object>> listitem;

           listitem.add(new HashMap("name","one"));

           listitem.add(new HashMap("name","张三"));

           listitem.add(new HashMap("name","李四"));

           listitem.add(new HashMap("name","王五"));

           listitem.add(new HashMap("name","two"));

          

           Comparent comparent = new Comparent();
           Collections.sort(listitem, comparent);

    其中在Comparent.java文件中定义方法如下:

    import java.text.Collator;
    import java.util.Comparator;
    import java.util.HashMap;
    import java.util.Locale;
    
    public class Comparent implements  Comparator<Object> {
    
     @SuppressWarnings("unchecked")
     @Override
     public int compare(Object arg0, Object arg1) {
      HashMap<String, Object> name1 = (HashMap<String, Object>)arg0;
      HashMap<String, Object> name2 = (HashMap<String, Object>)arg1;
      Collator ca = Collator.getInstance(Locale.CHINA);
      int flags = 0;
      if (ca.compare((String) name1.get("name"), (String)name2.get("name")) < 0) {
       flags = -1;
      }
      else if(ca.compare((String) name1.get("name"), (String)name2.get("name")) > 0) {
       flags = 1;
      }
      else {
       flags = 0;
      }
      return flags;
     }
    }
  • 相关阅读:
    adb 连接 Android 手机的两种方式
    Jmeter GUI及NON GUI下实现分布式
    史上最全最细 App 自动化环境部署
    不懂Java代码,照样把jmeter指定数据写入execl
    Dockerfile 让你轻松创建属于你的镜像 (下)
    Dockerfile 让你轻轻松松创建属于你的镜像 (上)
    Python vs Java (一):史上最全变量类型区别,99.99%的人都收藏了
    浏览器F12调试器定位系统前后端bug
    cookie,session
    App 抓包提示网络异常怎么破?(抓包HTTPS)
  • 原文地址:https://www.cnblogs.com/tc310/p/4992466.html
Copyright © 2011-2022 走看看