具了解有几种方法实现,实现Comparable接口,或是实例化一个比较器,现在用 Comparator 比较器实例来做一个测试。
package test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class ComparableTest { public static void main(String[] args) { //实现Comparator接口的compare方法 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; } }
相关推荐
要注意的是List,Set,Queue继承了Collection接口,...这里想用一个简单的例子展示一下他们的使用,内容包括:List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类,泛型、重写equals、hashCode
// java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...
3.Map(映射<集合>)是无序的,是一种把键对象和值对象进行映射的集合,它每一个元素都包含一对键对象和值对象,给出键对象就可以得到值对象,键对象不允许重复,对值没有要求,多个任意键对象可以映射到一个值对象...
* 功能:扑克牌的核心类 包括创建角色、创建牌、显示牌、洗牌、比较牌、排序牌等 * 属性:List cards 整幅扑克牌的集合 、 People[] peoples 角色 * 方法: public PockerCard() //无参构造函数: 创建牌的集合、...
在Java开发类库中,提供了很多工具类,我们即将学习最常见的工具类,比如对日期的操作,对集合的操作等。具体更多的工具类,请参考JavaDoc文档。 2. java.util.Date类 Date类包装了毫秒值,毫秒值表示自1970年1月1...
在 Java EE 中对数据 进行存储时都可以考虑集合。但要依据存储要求不同(如读优先还是写优先)选择适合的集合类 型。此外,本章还介绍了 Java 泛型编程。限于篇幅,我们没有详细研究泛型编程技术。如果要深 入了解...
SortedList: 存储键值对的集合 栈:先进后出队列 队列:先进先出列表 在 C#中遍历和排序对象集合 StringWriter实现的一个功能 创建一个文本文件并写入文本 序列化对象到文件 创建一个文本文件并写入文本 文件夹拷贝 ...
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 13、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 14、...
解析List数据集合为json数据源,json数据源记录总条数即为List集合的元素个数。 public string GetJsonByList(List<CalendarNotesModel> list, int count) 解析List数据集合为json数据源,json数据源记录总条数为...
解析List数据集合为json数据源,json数据源记录总条数即为List集合的元素个数。 public string GetJsonByList(List<CalendarNotesModel> list, int count) 解析List数据集合为json数据源,json数据源记录总条数为...
Java基础语法面试题资源通常是指帮助准备Java编程面试的问题集合,涵盖了Java编程语言的基础概念、语法、特性和...常见算法和数据结构:可能包含一些常见的算法问题,如查找、排序、递归等,以及与之相关的数据结构。
Java集合框架:常用的List、Set、Map等集合类及其实现方式、使用场景、遍历方法等。 异常处理:Java中的异常类型、异常处理机制、如何自定义异常等。 IO流:Java中常用的文件读写、序列化和反序列化等操作。 多线程...
flex3的cookbook书籍完整版dpf(包含目录),目录是我花了两个多小时自己整理的,希望对大家有帮助。 目录: 第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 ...
iteratot标签:对集合属性迭代(属性类型:List、Map、数组)。 append标签:将多个集合对象拼接在一起,组成一个新的集合。将多个集合使用一个标签完成迭代。 generatot标签:将指定的字符串按照规定的分隔符分解...
Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你...
Hash:一个键值(key=>value)对集合 List:简单的字符串列表 Set:string类型的无序集合 Zset:每个元素都会关联一个double类型的分数,redis通过分数来为集合中的成员进行从小到大的排序 Redis基本命令 Key: set, get, ...
接下来,我们看看如何创建一个新的排序项集合,还有一定要看一下最后的演示实例。 基本知识 创建一个新的Sortable对象 首先,我们要把我们要排序的元素赋值给变量。对于Sortables来说,如果你想要多个列表之间的元素...
以上六行包含了排序,循环,合并运算,价格数据不是通过不同的类别的电子表格,Web服务或XML输入的 让数据源更易于访问,可以连接不同的数据源的数据,并且对他们执行标准化的数据处理操作,全部只需要一行代码完成...
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap...
94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、...