枚举类型排序

1.对于数组的排序方法如下:

String[] names = {"王林",  "杨宝", "李镇", "刘迪", "刘波"};  
Arrays.sort(names, com.ibm.icu.text.Collator.getInstance(com.ibm.icu.util.ULocale.SIMPLIFIED_CHINESE));//升序;   
System.out.println(Arrays.toString(names));

2.对于汉字的排序:可以尝试使用ICU4J会得到更好的结果,特别是姓为某些生僻字的时候,

用com.ibm.icu.text.Collator替换java.text.Collator,用com.ibm.icu.util.ULocale替换java.util.Locale

3.对于枚举类型的enum1.compareTo(enum2)是按照枚举类型值在定义时的先后顺序比较的,越后面的越大,而不是按照值的字母先后顺序比较的。

public class Test {

public static void main(String[] args) {

List <Map<String,Object>>totallist = new ArrayList<Map<String,Object>>();

Map<String,Object> map = new HashMap<String,Object>();

map.put("PaymentType", PayType.S);

Map<String,Object> map1 = new HashMap<String,Object>();

map1.put("PaymentType", PayType.E);

Map<String,Object> map2 = new HashMap<String,Object>();

map2.put("PaymentType", PayType.Z);

totallist.add(map);

totallist.add(map1);

totallist.add(map2);

Collections.sort(totallist,new Comparator<Map<String,Object>>() {

public int compare(Map<String,Object> arg0, Map <String,Object>arg1) {

PayType t0 =(PayType) arg0.get("PaymentType");

PayType t1 = (PayType)arg1.get("PaymentType");

return  t1.compareTo(t0);

}

});

System.out.println(totallist);

}

public enum PayType {

W,

S,

E,

Z;

}

}

打印结果如下:

[{PaymentType=Z}, {PaymentType=E}, {PaymentType=S}]

时间: 2025-01-16 20:20:21

枚举类型排序的相关文章

C# 获取与解析枚举类型的 DescriptionAttribute

原文:C# 获取与解析枚举类型的 DescriptionAttribute System.ComponentModel.DescriptionAttribute 这个 Attribute,经常被用来为属性或事件提供说明,这个说明是可以被本地化的.在一些用户界面中,就可以利用这个 Attribute 提供一些额外的信息,就像 Visual Studio 中所做的,如图 1 所示: 图 1 可以看到,对 AutoSizeMode 的说明,被显示在了下面的框中. 但是,界面中的枚举项就没这么好的待遇了

Java魔法堂:枚举类型详解

一.前言 Java的枚举类型相对C#来说具有更灵活可配置性,Java的枚举类型可以携带更多的信息. // C# enum MyColor{ RED = 0, BLUE = 1 } Console.Write(MyColor.RED); // Java enum MyColor{ RED("Hot", 4), BLUE("SAD",8); private String mood; public String getMood{ return mood; } privat

8.3结构体_枚举类型

    结构体一般定义在Main函数上面,位于Class下面,作为一个类:一般情况Struct定义在Main函数前面,Main函数里面的地方都可以使用,参数前面加上public代表公用变量. 用法 1)在Main函数外面定义了一个student类型的结构体,在Main主函数中使用: 2)然后为里面的每个元素赋值,结构体名+点+结构体里面变量名称=值. 3)赋值之后完成之后进行打印. struct Student {//定义一组变量public int no;public string name;

5月11日 ArrayList集合复习、特殊集合、枚举类型

一.ArrayList集合复习 //定义 ArrayList al = new ArrayList(); //添加元素 al.Add(2); //插入元素 al.Insert(1,3); //查看个数 int a = al.Count;//count数数的意思 //清空集合 al.Clear(); //克隆一个集合 al.Clone(); //判断是否包含一个值 bool b = al.Contains("2"); //查看3第一个出现的索引号 int c = al.IndexOf(3

JavaScript一个简易枚举类型实现扑克牌

<script type="text/javascript"> /** * 这个函数创建一个新的枚举类型,实参对象表示类的每个实例的名字和值 * 返回值是一个构造函数,它标识这个新类 * 注意,这个构造函数也会抛出异常,不能使用它来创建该类型的新实例 * 返回的构造函数包含名/值对的映射表 * 包括由值组成的数组,以及以个foreach()迭代器函数 */ function enumeration(namesToValues){ //这个虚拟的构造函数式返回值 var en

2017-9-19C#笔记(LinQ标准运算符,String类,String方法,结构体,静态构造函数,枚举类型,位标识)

在LINQ中的标准查询运算符 写LINQ的时候有两种语法:查询语法和方法语法,其中方法语法是命令形式的,它使用的是标准的方法调用.方法是一组叫做标准查询运算符的方法. 标准查询运算符有一系列叫做API的方法组成,他能让我们查询任何.NET数据集合.有关标准查询运算符的重要特性如下: (1)       被查询的结合对象叫做序列,它必须实现IEnumerable<T>接口, T是类型: (2)       标准查询运算符使用方法语法 (3)       一些运算符返回IEnumberable对象

深入理解Java枚举类型(enum)

[版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/71333103 出自[zejian的博客] 关联文章: 理解Java位运算 深入理解Java类型信息(Class对象)与反射机制 本篇主要是深入对Java中枚举类型进行分析,主要内容如下: 理解枚举类型 枚举的定义 枚举实现原理 枚举的常见方法 Enum抽象类常见方法 编译器生成的Values方法与ValueOf方法 枚举与Clas

2基本类型数组和枚举类型——重拾Java

2.1 标识符和关键字 2.1.1标识符 标识符:用来标志类名.变量名.方法名.类型名.数组名.文件名的有效字符序列称为标识符.简单地说,标识符就是一个名字. Java关于标识符的语法规则 标识符由字母.下划线.美元符号和数字组成,长度不受限制. 标志符的第一个字符不能数字字符. 标识符不能是关键字 标志符不能是true,false和null(尽管true,false和null不是java关键字) 标识符中的字母是区分大小写的,hello和Hello是不同的标志符 2.1.2 关键字 关键字就是

C#枚举类型的常用操作总结

枚举类型是定义了一组"符号名称/值"配对.枚举类型是强类型的.每个枚举类型都是从system.Enum派生,又从system.ValueType派生,而system.ValueType又从system.Object派生,所以枚举类型是指类型. 编译枚举类型时,C#编译器会把每个符号转换成类型的一个常量字段.C#编译器将枚举类型视为基元类型. 1.获取枚举列表:         /// <summary>         /// 获取枚举列表         /// <