论坛首页 Java企业应用论坛

java list or Set (对象) 排序整理

浏览 3505 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-08-13  

//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

 

 

 

===========================Set 排序===============================

TreeSet<Integer> set2 = new TreeSet<Integer>(new Comparator<Integer>() {
   @Override
   public int compare(Integer o1, Integer o2) {
    if (o1 % 2 != 0) {
     if (o2 % 2 != 0) {
      return o2.compareTo(o1);
     }
     return -1;
    }
    if (o2 % 2 != 0) {
     return 1;
    }
    return o2.compareTo(o1);
   }
  });

这个网址有详细说明:http://www.blogjava.net/shingo/archive/2009/03/31/263190.html

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics