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

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

  1. import java.text.Collator;
  2. import java.util.Comparator;
  3. import java.util.Locale;
  4. public class Comparents implements Comparator<Object> {
  5. @Override
  6. public int compare(Object arg0, Object arg1) {
  7. String one = (String)arg0;
  8. String two = (String)arg1;
  9. Collator ca = Collator.getInstance(Locale.CHINA);
  10. int flags = 0;
  11. if (ca.compare(one,two) < 0) {
  12. flags = -1;
  13. }
  14. else if(ca.compare(one,two) > 0) {
  15. flags = 1;
  16. }
  17. else {
  18. flags = 0;
  19. }
  20. return flags;
  21. }
  22. }

在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文件中定义方法如下:

  1. import java.text.Collator;
  2. import java.util.Comparator;
  3. import java.util.HashMap;
  4. import java.util.Locale;
  5.  
  6. public class Comparent implements Comparator<Object> {
  7.  
  8. @SuppressWarnings("unchecked")
  9. @Override
  10. public int compare(Object arg0, Object arg1) {
  11. HashMap<String, Object> name1 = (HashMap<String, Object>)arg0;
  12. HashMap<String, Object> name2 = (HashMap<String, Object>)arg1;
  13. Collator ca = Collator.getInstance(Locale.CHINA);
  14. int flags = 0;
  15. if (ca.compare((String) name1.get("name"), (String)name2.get("name")) < 0) {
  16. flags = -1;
  17. }
  18. else if(ca.compare((String) name1.get("name"), (String)name2.get("name")) > 0) {
  19. flags = 1;
  20. }
  21. else {
  22. flags = 0;
  23. }
  24. return flags;
  25. }
  26. }

java、android拼音,中文姓名排序的更多相关文章

  1. Java 随机生成中文姓名,手机号,邮编,住址

    package lovo; import java.util.HashMap; import java.util.Map; /** * 随机生成中文姓名,性别,Email,手机号,住址 * @auth ...

  2. Android实现中文汉字笔划(笔画)、中文拼音排序、英文排序

    发布时间:2018-11-16   技术:Android   概述 最近要做一个类似微信的,在登录界面选择国家地区的功能,微信有中文汉字笔画排序以及中文拼音排序等几种方式,如下所示: 简体中文 拼音排 ...

  3. SQL 用中文的拼音和笔画排序

    SQL 用中文的拼音和笔画排序   城市按拼音排序: SELECT chineseName FROM [表名] order by chinesename collate Chinese_PRC_CS_ ...

  4. java中文拼音字母排序

    package com.yputil.util; import java.text.CollationKey;import java.text.Collator;import java.util.Ar ...

  5. Java对中文进行排序

    对中文进行排序,同样是得定义一个Comparator,下面上代码: import java.text.Collator; import java.util.ArrayList; import java ...

  6. mysql 中将汉字(中文)按照拼音首字母排序

    因为数据库中可以设定表的编码格式,不同编码格式下,中文的排序有区别,下面分别介绍常用编码下的排序方法. 1.如果数据表的某字段的字符编码是 utf8_general_ci,排序写法: ORDER BY ...

  7. .NET转JAVA之拼音组件

    PS:做了4年,自我感觉.NET到瓶颈了,而且公司并没有深入运用.NET技术的项目,自我学习感觉也没太大动力(请骂我懒T_T).再加上技术年限越往上走,了解到的.NET职业提升环境就越来越艰难(个人理 ...

  8. Android根据联系人姓名首字符顺序读取通讯录

      Android根据联系人姓名首字符顺序读取通讯录 版权声明:本文为Zhang Phil原创文章,欢迎转载!转载请注明出处:http://blog.csdn.net/zhangphil 本文给出了A ...

  9. JAVA Collections工具类sort()排序方法

    主要分析内容: 一.Collections工具类两种sort()方法 二.示例 一.Collections工具类两种sort()方法 格式一: public static <T extends ...

随机推荐

  1. EJB 使用多个数据源问题

    编辑 删除 如果在JBoss中同时使用俩个数据源就会发生如下异常: Transaction is not active: tx=TransactionImple < ac, BasicActio ...

  2. 洛谷 P2680 运输计划

    题目背景 公元 2044 年,人类进入了宇宙纪元. 题目描述 L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n-1 条航道连通了 L 国的所有星球. 小 P 掌管一家 ...

  3. Spoj8093 Sevenk Love Oimaster

    题目描述 题解: 对于所有n串建广义后缀自动机. (广义后缀自动机唯一区别就是每次将las附成1,并不需要在插入时特判) 建完后再建出parent树,然后用dfs序+树状数组搞区间不同种类. 其实就是 ...

  4. POJ-3278 抓住这头牛

    广搜解决. 广搜搜出最短路,直接输出返回就行了. 每个点只搜一次,而且界限进行一次判断. else 语句里面不要用if    else if,这样的话就直走一条路了. #include <ios ...

  5. django实现github第三方本地登录

    1.安装 pip install social-auth-app-django 2.生成Client ID和Client Secret 3.修改setting.py INSTALLED_APPS = ...

  6. Java后端技术微信交流群!工作、学习、技术、资源等!期待你的加入!

    <Java后端技术>专注Java相关技术:SSM.Spring全家桶.微服务.MySQL.MyCat.集群.分布式.中间件.Linux.网络.多线程,偶尔讲点运维Jenkins.Nexus ...

  7. 【JDBC】java连接MySQL数据库步骤

    java连接数据库步骤 1. 加载驱动 Class.forName("com.mysql.java.Driver"); 或: registerDriver(new com.mysq ...

  8. 第十三章:MFC库与Windows程序开发概述

    主要内容: 1.Windows程序的基本结构 2.MFC库简介 3.使用Visual C++开发Windows程序 具体内容略

  9. day16-python之函数式编程匿名函数

    1.复习 #!/usr/bin/env python # -*- coding:utf-8 -*- name = 'alex' #name=‘lhf’ def change_name(): name= ...

  10. POJ 2349 Arctic Network(贪心 最小生成树)

    题意: 给定n个点, 要求修p-1条路使其连通, 但是现在有s个卫星, 每两个卫星可以免费构成连通(意思是不需要修路了), 问修的路最长距离是多少. 分析: s个卫星可以代替s-1条路, 所以只要求最 ...