`
wlh269
  • 浏览: 447144 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java ArrayList 自定义排序

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

public class ComparableTest {
public static void main(String[] args) {
  Comparator<Student> comparator = new Comparator<Student>(){
   public int compare(Student s1, Student s2) {
    //先排年龄
    if(s1.age!=s2.age){
     return s1.age-s2.age;
    }
    else{
     //年龄相同则按姓名排序
     if(!s1.name.equals(s2.name)){
      return s1.name.compareTo(s2.name);
     }
     else{
      //姓名也相同则按学号排序
      return s1.id-s2.id;
     }
    }
   }
  };
  Student stu1 = new Student (1,"zhangsan","male",28,"cs");
  Student stu2 = new Student (2,"lisi","female",19,"cs");
  Student stu3 = new Student (3,"wangwu","male",22,"cs");
  Student stu4 = new Student (4,"zhaoliu","female",17,"cs");
  Student stu5 = new Student (5,"jiaoming","male",22,"cs");

  ArrayList<Student> List = new ArrayList<Student>();
  List.add(stu1);
  List.add(stu2);
  List.add(stu3);
  List.add(stu4);
  List.add(stu5);
  //这里就会自动根据规则进行排序
  Collections.sort(List,comparator);
  display(List);
}

static void display(ArrayList<Student> lst){
  for(Student s:lst)
   System.out.println(s);
}
}

class Student{
int age;
int id;
String gender;
String name;
String cs;
Student(int id,String name,String gender,int age,String cs){
  this.age=age;
  this.name=name;
  this.gender=gender;
  this.id=id;
  this.cs=cs;
}
public String toString(){
  return id+"  "+name+"  "+gender+"  "+age+"  "+cs;
}
}
分享到:
评论

相关推荐

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

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

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

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

    java jdk实列宝典 光盘源代码

    java为数据结构中的列表定义了一个接口类java.util.list同时提供了3个实现类,分别是ArrayList、Vector、LinkedList使用; 生成不重复的随机数序列;列表、集合与数组的互相转换;java为数据结构中的映射定义一个接口...

    Java 集合方面的面试题

    ArrayList 和 LinkedList 有什么区别? HashSet 和 TreeSet 有什么区别? HashMap 和 TreeMap 有什么区别? 什么是迭代器?如何使用它来遍历集合? 什么是 fail-fast 机制? 如何使用 Collections 类对集合进行排序...

    java基础案例与开发详解案例源码全

    11.3.1 实现类ArrayList277 11.3.2 实现类LinkedList279 11.3.3 实现类Vector281 11.4 Map接口283 11.4.1 实现类HashMap284 11.4.2 实现类LinkedHashMap285 11.4.3 实现类TreeMap286 11.4.4 实现类Properties287 ...

    Java JDK实例宝典

    全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...

    《Java和Android开发实战详解》第6到10章源代码-by 南邮-陈杨

    第6章 数组与字符串 96 6.1 数组基础 96 6.2 一维数组与多维数组 96 6.2.1 一维数组 97 6.2.2 二维与多维数组 99 ...10.6.2 ArrayList类 210 10.6.3 Iterator接口 211 10.6.4 ListIterator接口 213

    疯狂JAVA讲义

    7.4.2 ArrayList和Vector实现类 264 7.4.3 固定长度的List 266 7.5 Queue接口 266 7.5.1 LinkedList实现类 266 7.5.2 PriorityQueue实现类 269 7.6 Map 270 7.6.1 HashMap和Hashtable实现类 271 7.6.2 ...

    Java_15:排序和搜索

    第六天:自定义课程 第七天:JavaDoc和单元测试 第八天:If-Else陈述 第9天:开关/ If-Else梯子 第十天:循环 第11天:While循环 第十二天:数组 第13天:多维数组 第14天:ArrayList和集合 第15天-排序和搜索 第16...

    java常用工具类的使用

    而在Java类库中有一个Arrays类的sort方法已经实现各种数据类型的排序算法。程序员只需要调用该类的方法即可。 代码演示:Arrays实现排序 public static void main(String[] args) { int[] ages={23, 45,12,76,34,...

    JAVA 范例大全 光盘 资源

    实例14 数组排序 35 实例15 数组搜索 37 实例16 去掉数组重复数字 39 实例17 求质数(素数) 41 实例18 矩阵的加减和转置 43 实例19 数组实现顺序栈与队列 46 实例20 Arrays数组的应用 50 第5章 面向对象设计...

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

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

    java 面试题 总结

    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap...

    Java_1:Java编程基础

    第六天:自定义课程 第七天:JavaDoc和单元测试 第八天:If-Else陈述 第9天:开关/ If-Else梯子 第十天:循环 第11天:While循环 第十二天:数组 第13天:多维数组 第14天:ArrayList和集合 第15天-排序和搜索 第16...

    21天学通Java-由浅入深

    87 5.3 数组操作的举例 88 5.3.1 数组元素值的复制 88 5.3.2 数组元素的排序 90 5.3.3 在数组里查找指定元素 91 5.3.4 利用数组打印26个英文字母 92 5.4 综合练习 93 5.5 小结 94 5.6 习题 94 第二篇 面向对象篇 第6...

    Java_13:多维数组

    第六天:自定义课程 第七天:JavaDoc和单元测试 第八天:If-Else陈述 第9天:开关/ If-Else梯子 第十天:循环 第11天:While循环 第十二天:数组 第13天:多维数组 第14天:ArrayList和集合 第15天-排序和搜索 第16...

    Java_17:文件输入输出

    Learn_core_java_day_17 第一天:Java编程基础知识第二天:变量,数据...ArrayList和集合第15天-排序和搜索第16天:例外第17天:文件输入/输出第18天:使用Java Swing进行GUI编程第19天:接口和继承。 第20天:Web服务

    js中的数组Array定义与sort方法使用示例

    Array数组相当于java中的ArrayList 定义方法: 1:使用new Array(5 )创建数组 var ary = new Array(5); 2:使用Json语法,var ary = 【1,3,4】;...//自定义排序规则3,5,11,12,29 }); alert(ary.to

Global site tag (gtag.js) - Google Analytics