此处Java list 排序主要用到Collections.sort方法:
- package com.tom.compare;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.List;
- public class CompareClient {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- List list = new ArrayList();
- list.add(new Content(15000,"1asdfasd5000"));
- list.add(new Content(10000,"10000"));
- list.add(new Content(20000,"20000"));
- list.add(new Content(30000,"30000"));
- list.add(new Content(25000,"25000"));
- list.add(new Content(13000,"13000"));
- list.add(new Content(15000,"15000"));
- list.add(new Content(89000,"89000"));
- ContentComparator comp = new ContentComparator();
- Collections.sort(list,comp);
- Content content;
- for(int i = 0; i < list.size(); i++){
- content = (Content)list.get(i);
- System.out.println(" content.getName() " + content.getName());
- }
- }
- }
- package com.tom.compare;
- import java.util.Comparator;
- public class ContentComparator implements Comparator {
- public int compare(Object o1, Object o2) {
- // TODO Auto-generated method stub
- Content c1 = (Content) o1;
- Content c2 = (Content) o2;
- if (c1.getKey() > c2.getKey()) {
- return 1;
- } else {
- if (c1.getKey() == c2.getKey()) {
- return 0;
- } else {
- return -1;
- }
- }
- }
- }
- package com.tom.compare;
- public class Content {
- private long key;
- private String name;
- public Content(long key, String name) {
- this.key = key;
- this.name = name;
- }
- public long getKey() {
- return key;
- }
- public void setKey(long key) {
- this.key = key;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
结果是:
- content.getName() 10000
- content.getName() 13000
- content.getName() 1asdfasd5000
- content.getName() 15000
- content.getName() 20000
- content.getName() 25000
- content.getName() 30000
- content.getName() 89000
以下为按时间排序:
- public static void sss() {
- String[] dates = {
- "2 Dec 2003 12:12:05",
- "2 Apr 2003 13:12:05",
- "2 Jan 2003 10:12:05",
- "2 Feb 2003 15:12:05",
- };
- java.text.SimpleDateFormat f = new java.text.SimpleDateFormat("d MMM y HH:mm:ss",Locale.ENGLISH);
- try{
- System.out.println("before:");
- for(int i = 0; i<dates.length; i++) {
- System.out.println(dates[i]);
- }
- Arrays.sort(dates, new Comparator() {
- public int compare(Object o1, Object o2){
- try{
- SimpleDateFormat df = new java.text.SimpleDateFormat("d MMM y HH:mm:ss",Locale.ENGLISH);
- Date d1 = df.parse((String)o1);
- Date d2 = df.parse((String)o2);
- return d1.compareTo(d2);
- }catch(Exception e){e.printStackTrace();}
- return -1;
- }
- });
- System.out.println("after:");
- for(int i = 0; i<dates.length; i++) {
- System.out.println(dates[i]);
- }
- }catch(Exception e){e.printStackTrace();}
- }
【编辑推荐】