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 @   jamin  阅读(514)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示