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;
}
}

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. MyBatis使用懒加载mybatis-config.xml配置

    在mybatis-config.xml添加如下配置 <settings> <!--要使延迟加载生效必须配置下面两个属性--> <setting name="la ...

  2. EEPROM介绍

    EEPROM( Electrically Erasable Programmable Read Only Memory )全称是电气可擦除可编程只读存储器,是非易失存储器,可以访问到每个字节,容量比较 ...

  3. checking for gcc... no

    ./configure 后显示checking for gcc... nochecking for cc... nochecking for cl.exe... noconfigure.sh:erro ...

  4. rabbitmq的知识点

    rabbitmq,分为集群和主从2种. 主从式与集群式的速度差10倍. 每个rabittmq组需要3台机器. 集群式,稳定性高,主从式,速度快. 可以做任务分配,单点锁(二进制树实现). 只有当消息和 ...

  5. 移除sql数据所有链接用户

    use master;   go   declare @temp nvarchar(20)   declare myCurse cursor   for   select spid   from sy ...

  6. XtraBackUp 热备份工具

    是一款强大的在线热备份工具 备份的过程中,不锁表 使用percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm yum源安装: 1.安装Percona的库:       ...

  7. 使用正则进行HTML页面属性的替换

    使用正则表达式拼接富文本框 package com.goboosoft.common.utils; import org.apache.commons.lang3.StringUtils; impor ...

  8. feign 负载均衡熔断器

    feign:和zuul配合进行负载均衡. 注解的含义: @EnableDiscoveryClient 声明它是一个资源服务端,即可以通过某些接口调用一些资源: @EnableFeignClients ...

  9. VBA Promming入门教程——变量的使用

    数据类型 VBA中的数据类型可分为两种 示例 String Sub Main Dim s as string s = "Hello" msgbox(s) End Sub Singl ...

  10. cobbler 无人值守-介绍

    cobbler 介绍 快速网络安装linux操作系统的服务,支持众多的Linux版本,也支持网络安装windows系统 PXE的二次封装,将多种安装参数封装到一个菜单 它是由Python编写的 还可以 ...