java中如何实现自定义排序
2013-02-26 20:13
477 查看
解题中经常用到自定义排序,把这篇文章放到这里备用。
当需要排序的集合或数组不是单纯的数字型时,通常要用到两个接口Comparator或Comparable,以简单的方式实现对象排序或自定义排序。
一、Comparator
强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays.sort。
接口方法:
/**
* @return o1小于、等于或大于o2,分别返回负整数、零或正整数。
*/
int compare(Object o1, Object o2);
例:
Java代码
import java.util.Arrays;
import java.util.Comparator;
public class SampleComparator
implements Comparator {
public int compare(Object o1, Object o2) {
return toInt(o1) - toInt(o2);
}
private int toInt(Object o) {
String str = (String) o;
str = str.replaceAll("一", "1");
str = str.replaceAll("二", "2");
str = str.replaceAll("三", "3");
//
return Integer.parseInt(str);
}
/**
* 测试方法
*/
public static
void main(String[] args) {
String[] array = new String[] {
"一二", "三", "二" };
Arrays.sort(array, new SampleComparator());
for (int i =
0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
C:\hdu>java SampleComparator
二
三
一二
当需要排序的集合或数组不是单纯的数字型时,通常要用到两个接口Comparator或Comparable,以简单的方式实现对象排序或自定义排序。
一、Comparator
强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays.sort。
接口方法:
/**
* @return o1小于、等于或大于o2,分别返回负整数、零或正整数。
*/
int compare(Object o1, Object o2);
例:
Java代码
import java.util.Arrays;
import java.util.Comparator;
public class SampleComparator
implements Comparator {
public int compare(Object o1, Object o2) {
return toInt(o1) - toInt(o2);
}
private int toInt(Object o) {
String str = (String) o;
str = str.replaceAll("一", "1");
str = str.replaceAll("二", "2");
str = str.replaceAll("三", "3");
//
return Integer.parseInt(str);
}
/**
* 测试方法
*/
public static
void main(String[] args) {
String[] array = new String[] {
"一二", "三", "二" };
Arrays.sort(array, new SampleComparator());
for (int i =
0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
C:\hdu>java SampleComparator
二
三
一二
相关文章推荐
- Java 实现自定义异常 以及如何使用该异常
- 【Java SE】如何用Java实现反转排序
- 自定义多列排序:C++/Java实现
- Java自定义比较器实现中文排序
- java 如何对自定义的对象进行排序
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- Java自定义实现Comparable接口的类,实现多维排序
- 关于如何在java中实现中文首字母索引排序的问题
- 如何用Spring AOP和Java自定义注解实现登陆鉴权
- java中的list自定义排序以及倒排序的实现
- Java实现自定义对象的排序
- 第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容
- 第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容
- java Collections.sort()实现List排序的默认方法和自定义方法
- 如何运用PHP函数usort()实现自定义排序
- 如何实现自定义类对象数组的排序
- java 自定义类如何实现foreach循环
- JAVA类中如何利用Comparator实现自定义排序
- java类自定义实现类排序实现(Comparable或者额外类实现Comparator)