`
caoyinghui
  • 浏览: 126131 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java 如何对自定义的对象进行排序

    博客分类:
  • Java
阅读更多
import java.util.Comparator;
import java.util.ArrayList;

public class Demo{
 public static void main(String[] args){
  
  
  User u1 =new User("aaa",12);
  User u2 =new User("ddd",10);
  User u3 =new User("ccc",20);
  User u4 =new User("bbb",10);
  
  ArrayList arrayList = new ArrayList();
  arrayList.add(u1);
  arrayList.add(u2);
  arrayList.add(u3);
  arrayList.add(u4);
  
  Object[] users =arrayList.toArray();
  System.out.println ("排序前。。。。");
  for (int i = 0; i<users.length; i++){
   System.out.println (users[i]);
  }
  System.out.println ("*******************************");
  System.out.println ("排序后。。。。。");
  //把排序规则交给sort方法。该方法就回按照你自定义的规则进行排序
  
  java.util.Arrays.sort(users,new MyComparator());
  
  
  for (int i = 0; i<users.length; i++){
   System.out.println (users[i]);
  }
  
  
  
 }
}

class User{
 String name;
 int age ;
 
 public User(String name,int age){
  this.name  = name;
  this.age = age; 
 }
 
 public String toString(){
  return name+":::"+age;
 }
 
}


class MyComparator implements Comparator{
 public  int compare(Object  obj1, Object obj2 ){
  User u1 = (User)obj1;
  User u2 = (User)obj2;
  if(u1.age>u2.age){
   return 1;
  }else if(u1.age<u2.age){
   return -1;
  }else{
   //利用String自身的排序方法。
   //如果年龄相同就按名字进行排序
   return u1.name.compareTo(u2.name);
  }
  
  
 }
} 



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/caoyinghui1986/archive/2008/03/30/2229937.aspx

 

分享到:
评论

相关推荐

    Compable和Comparator自定义对象属性排序

    可以通过两种方式自定义对象的属性大小进行比较,对一个list或数组对根据属性排序一个list或数组

    文件按照window 的排序规则-Java实现

    文件按照window 的排序规则-Java实现。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    Java针对ArrayList自定义排序的2种实现方法

    主要介绍了Java针对ArrayList自定义排序的2种实现方法,结合实例形式总结分析了Java操作ArrayList自定义排序的原理与相关实现技巧,需要的朋友可以参考下

    java竞赛中各种自定义排序模板

    如果要按照某一个属性来对这个对象数组进行升序或降序排序,那么就需要用Arrays.sort(),但是这个创建的类一定要继承Comparable这个接口并重写compareTo方法。代码如下: package 排序; import java.util.Arrays; ...

    自定义java常见工具类

    java开发中常用的工具类 比如 ...4:javabean java对象到xml的自动封装 5:各种日期格式的处理 6:json的自动封装处理 7:fusionchart各种图 显示样式的定义 8:各种排序算法 9:其他很多。。。想看 下载吧

    JAVA 键盘录入学生成绩,排序后输出

    JAVA 键盘录入学生成绩,排序后输出,set中自定义排序规则。

    java排序代码

    定制排序:在创建TreeSet集合对象时,并提供一个Comparator接口实现类对象与该TreeSet集合关联, 由Comparator实现类对象负责集合元素的排序逻辑。 // 自定义比较器 class MyTreeSetCompartor implements...

    java 面向对象的数据库增删改查封装。easySql-1.1.jar

    2.优化多条件查询,支持or语句,支持多种排序,支持自定义返回字段,支持自增语句 3.支持一次插入多条 4.支持外部connention 5.优化分页查询 6.支持手动开启或关闭日志打印 7.优化对特殊符号的支持 博文:...

    Java开发技术大全(500个源代码).

    SortDemo.java 排序示例 travelTwoDime.java 遍历二维数组 traversing.java 遍历一维数组 useStrBuf.java 使用StringBuffer示例 useString.java 使用String示例 YanghuiTri.java 构造和显示杨辉三角 第6章 ...

    JAVA上百实例源码以及开源项目源代码

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    JAVA上百实例源码以及开源项目

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    Java《面向对象程序设计》实验报告五

    2、按顺序把1,10,5,7,6,2,9,20,14,存入到List中(注:允许自己自定义任何数),并对其进行排序,打印其升序和降序排列的结果。然后再向List中 位置为第四位插入数 35看看会有啥结果?再向List中插入字符串“ddy”,...

    java+main方法源码-Java-Program:在此作业中,您将创建自己的Java程序,该程序将打印您的姓名,年龄和家乡。运行字节码后,

    java+main方法源码

    Java经典编程源码基础例程300.zip

    实例039 使用快速排序法对数组排序 57 实例040 使用直接插入法对数组排序 59 实例041 使用sort()方法对数组排序 61 实例042 反转数组中元素的顺序 63 第6章 面向对象入门 65 实例043 自定义图书类 66 实例044 温度...

    Java开发详解.zip

    031305_【第13章:Java类集】_排序及重复元素说明笔记.pdf 031306_【第13章:Java类集】_SortedSet接口笔记.pdf 031307_【第13章:Java类集】_Iterator接口笔记.pdf 031308_【第13章:Java类集】_ListIterator接口...

    java jdk实列宝典 光盘源代码

    12反射 是java程序开发的特征之一,允许java程序对自身进行检查,并能直接操作程序的内部属性; instanceof操作符,instanceof.java; 获取类的信息,ViewClassInfoJrame.java; 动态调用类的方法,CallMetod.java; ...

    java常用工具类的使用

    比如对一个数组进行排序,程序员可以写如下排序算法: 代码演示:数组排序 public static void sort(int[] arrs) { boolean isSwap = false; for (int i = 0; i ; i++) { isSwap = false; for (int j = arrs....

    廖雪峰 Java 教程.doc

    数组排序 多维数组 命令行参数 面向对象编程 面向对象基础 方法 构造方法 方法重载 继承 多态 抽象类 接口 静态字段和静态方法 包 作用域 classpath和jar 模块 Java核心类 字符串和编码 ...

    Java2实用教程.rar

    4 16 2自定义异常类 4 17Class类 4 17 1获取类的有关信息 4 17 2使用Class实例化一个对象 4 18基本类型的类包装 4 18 1Double类和Float类 4 18 2Byte Integer Short 工 ong类 4 18 3Character类 4 19反编译和文档...

Global site tag (gtag.js) - Google Analytics