java List 的两个排序方式(附:汉字字典排序方式)
2017-03-13 14:19
323 查看
List 中的ArrayList本身是按照添加顺序排列的,但是有时候想自定义排序方式怎么办呢?
1、List<Record>中的Record 实现 Comparable<Record>接口并复写compareto方法
[java] view
plain copy
public class Record implements Comparable<Record> {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(Record o) {
return name.compareTo(o.name);
}
}
然后再比较的时候调用实现排序
[java] view
plain copy
Collections.sort(list);
2、第二种方式,通过内部类实现排序
[java] view
plain copy
public static void main(String[] args) {
List<Record> list = new ArrayList<Record>();
Collections.sort(list, new Comparator<Record>() {
public int compare(Record o1, Record o2) {
return o1.getName().compareTo(o2.getName())
};
});
}
附:按照汉字的字典序列进行排序
[java] view
plain copy
package com.datayes.ecoinfo;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("你");
list.add("好");
list.add("啊");
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);
return com.compare(o1, o2);
}
});
for (String temp : list) {
System.out.println(temp);
}
}
}
jdk自带的Collator包涵的汉字太少了,对一些生僻的姓氏不能进行排序。推荐使用:
[java] view
plain copy
import com.ibm.icu.text.Collator;
是ibm开发的针对编码的工具包,非常好用。附pom文件:
[html] view
plain copy
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>57.1</version>
</dependency>
1、List<Record>中的Record 实现 Comparable<Record>接口并复写compareto方法
[java] view
plain copy
public class Record implements Comparable<Record> {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(Record o) {
return name.compareTo(o.name);
}
}
然后再比较的时候调用实现排序
[java] view
plain copy
Collections.sort(list);
2、第二种方式,通过内部类实现排序
[java] view
plain copy
public static void main(String[] args) {
List<Record> list = new ArrayList<Record>();
Collections.sort(list, new Comparator<Record>() {
public int compare(Record o1, Record o2) {
return o1.getName().compareTo(o2.getName())
};
});
}
附:按照汉字的字典序列进行排序
[java] view
plain copy
package com.datayes.ecoinfo;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("你");
list.add("好");
list.add("啊");
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);
return com.compare(o1, o2);
}
});
for (String temp : list) {
System.out.println(temp);
}
}
}
jdk自带的Collator包涵的汉字太少了,对一些生僻的姓氏不能进行排序。推荐使用:
[java] view
plain copy
import com.ibm.icu.text.Collator;
是ibm开发的针对编码的工具包,非常好用。附pom文件:
[html] view
plain copy
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>57.1</version>
</dependency>
相关文章推荐
- java List 的两个排序方式(附:汉字字典排序方式)
- java 实现List对象中按某种方式进行排序
- java对List去重并排序、如何快速地去掉两个List中相同的部分
- java 两个相同元素的List,合并排序去除重复元素的快速算法
- java list对元素进行指定多个字段属性按多种排序方式进行排序
- JAVA中对List<Map<String,Object>>中的中文汉字进行排序
- Java两个list合并后逆序排序
- JAVA中对List<Map<String,Object>>中的中文汉字进行排序
- java 中对list中的汉字进行排序
- java 之Sting类型的List集合的汉字排序和String类型数组的汉字排序及List<Bean>排序
- Java List 汉字进行排序
- Java List 汉字进行排序
- 最简单的对Java List列表按中文拼音排序的实现方式
- 120941138:java list sort()排序各种方式,实现接口
- java中对List<Map<String,Object>>中的中文汉字排序
- Java实现对两个List快速去重并排序操作示例
- java中对List<Map<String,Object>>中的中文汉字排序
- 最简单的对Java List列表按中文拼音排序的实现方式
- java中重写Comparator对两个list集合排序
- 含中文的List列表按中文拼音排序的实现方式 Java