`
luoxiaohui_java
  • 浏览: 12877 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

基于ArrayList的对象多属性值排序

阅读更多
问题描述: 有对象Student具有学号、姓名两个属性,请用两个List对一组student对象进行排序,要求首先按照姓名排序,然后按照学号排序。

以下只是部分代码:

//按照名字排序
	public int compare(Student o1, Student o2) {
	    String name1 = o1.getStuName();
	    String name2 = o2.getStuName();
		return name1.compareTo(name2);//按照stuName的字母顺序排序。
	}


	public int compare(Student o1, Student o2) {
		
		int stuno1 = o1.getStuNo();
		int stuno2 = o2.getStuNo();
		
		int comparedResult = Collator.getInstance(Locale.CHINESE).compare(o1.getStuName(),o2.getStuName());
		if(comparedResult == 0 ){ //这里表示比较的两条记录的stuName相同。
		  if(stuno1>stuno2)//这里控制stuno是按升序还是降序。
		     return 1;//这里控制stuname是按升序还是降序。
		}
		return 0;
	}


输出结果:
排序前=======================================
stuNo:1,stuName:zhangsan
stuNo:6,stuName:liwen
stuNo:27,stuName:bandong
stuNo:19,stuName:kuge
stuNo:28,stuName:bandong
stuNo:3,stuName:xiezhonghua
stuNo:16,stuName:bandong
stuNo:12,stuName:sbf
排序中=======================================
stuNo:27,stuName:bandong
stuNo:28,stuName:bandong
stuNo:16,stuName:bandong
stuNo:19,stuName:kuge
stuNo:6,stuName:liwen
stuNo:12,stuName:sbf
stuNo:3,stuName:xiezhonghua
stuNo:1,stuName:zhangsan
排序后=======================================
stuNo:16,stuName:bandong
stuNo:27,stuName:bandong
stuNo:28,stuName:bandong
stuNo:19,stuName:kuge
stuNo:6,stuName:liwen
stuNo:12,stuName:sbf
stuNo:3,stuName:xiezhonghua
stuNo:1,stuName:zhangsan


详情请见附件。
分享到:
评论

相关推荐

    超级有影响力霸气的Java面试题大全文档

    对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 7、String 和StringBuffer的区别  JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的...

    java 面试题 总结

    对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 4、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符...

    关于JAVA面试的100题及其答案

    对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 4、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符...

    JAVA面试题最全集

    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本...这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() ...

    进销存系统文档作业例子

    对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 4、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的...

    疯狂JAVA讲义

    学生提问:能不能只分配内存空间,不赋初始值呢?89 4.5.4 使用数组 90 学生提问:为什么要我记住这些异常信息? 91 4.5.5 JDK1.5提供了foreach循环 91 4.6 深入数组 93 4.6.1 内存中的数组 93 学生提问:为...

    asp.net知识库

    XSL学习心得 - 调用属性值 XSLT与XML转换的详细介绍 功能应用 读写搜索 基础教程 RSS Web2.0时代,RSS你会用了吗?(技术实现总结) 知识集锦:三分钟全面了解 Blog 和 RSS C#+ASP.NET开发基于Web的RSS阅读器 ASP.NET ...

    【。net 专业】 面试题

    创建一个基于这个DataTable对象的新的DataView并将这个DataView的Sort属性设置为“ProductName DESC”。然后将这个DataView对象绑定到DataGrid控件。  C. 将DataGrid控件的AllowSorting属性设置为True,并将...

    net学习笔记及其他代码应用

    44.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 答:不对,有相同的hash code。 45.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? 答:switch(expr1...

    java面试题

    35. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 18 36. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?...

    java基础题 很全面

    36. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 11 37. 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此...

    千方百计笔试题大全

    94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、...

    java面试宝典

    94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、...

    最新Java面试宝典pdf版

    69、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 48 70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的...

    Java面试笔试资料大全

    69、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 48 70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的...

    Java面试宝典2010版

    69、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的...

    Java面试宝典-经典

    69、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 48 70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的...

    JAVA面试宝典2010

    69、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 48 70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的...

    java面试题大全(2012版)

    69、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 48 70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的...

Global site tag (gtag.js) - Google Analytics