java中的List排序[转]

//java list 排序
//关键词: 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

 
 
另例:

ListSort.java

package test.map;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class ListSort {
     @SuppressWarnings("unchecked")
public static void main(String[] args){
         ArrayList list = new ArrayList();
         list.add(new Person("lcl",28));
         list.add(new Person("fx",23));
         list.add(new Person("wqx",29));
         Comparator comp = new Comparator(){
        public int compare(Object o1,Object o2) {
              Person p1=(Person)o1;
              Person p2=(Person)o2;
             if(p1.age<p2.age)
                 return 1;
             else
                 return 0;
             }
        };
         Collections.sort(list,comp);
        
      
         for(int i = 0;i<list.size();i++){
             Person p = (Person)list.get(i);
             System.out.println(p.getName());
         }
     }
     public static class Person {
   
    private int age;
    private String name;
     public Person(String name,int age){
     this.age = age;
     this.name = name;
     }
    public int getAge() {
    return age;
   }
   public void setAge(int age) {
    this.age = age;
   }
   public String getName() {
    return name;
   }
   public void setName(String name) {
    this.name = name;
   }
   
       }
}

posted @ 2009-12-30 09:33  jamin  阅读(510)  评论(0编辑  收藏  举报