集合框架-ArrayList集合儲存自定義物件的排序案例
(4)案例
A:ArrayList集合儲存自定義物件的排序
package cn.itcast_02;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/*
* Collections可以針對ArrayList儲存基本包裝類的元素排序,儲存自定義物件可不可以排序呢?
*/
public class CollectionsDemo {
public static void main(String[] args) {
// 建立集合物件
List<Student> list = new ArrayList<Student>();
// 建立學生物件
Student s1 = new Student("林青霞", 27);
Student s2 = new Student("風清揚", 30);
Student s3 = new Student("劉曉曲", 28);
Student s4 = new Student("武鑫", 29);
Student s5 = new Student("林青霞", 27);
// 新增元素物件
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
list.add(s5);
// 排序
// 自然排序
// Collections.sort(list);
// 比較器排序
// 如果同時有自然排序和比較器排序,以比較器排序為主
Collections.sort(list, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int num = s2.getAge() - s1.getAge();
int num2 = num == 0 ? s1.getName().compareTo(s2.getName()): num;
return num2;
}
});
// 遍歷集合
for (Student s : list) {
System.out.println(s.getName() + "---" + s.getAge());
}
}
}
package cn.itcast_02;
/**
* @author Administrator
*
*/
public class Student implements Comparable<Student> {
private String name;
private int age;
public Student() {
super();
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
//這是自然排序
public int compareTo(Student s) {
int num = this.age - s.age;
int num2 = num == 0 ? this.name.compareTo(s.name) : num;
return num2;
}
}
相關文章
- Java集合框架(一)-ArrayListJava框架
- 集合框架2- ArrayList框架
- 純手寫Arraylist集合框架框架
- C# 泛型集合的自定義型別排序C#泛型型別排序
- 集合框架(List儲存字串並遍歷)框架字串
- Java 集合框架------ArrayList原始碼分析Java框架原始碼
- java集合物件排序總結Java物件排序
- 集合框架原始碼學習之ArrayList框架原始碼
- JAVA集合-ArrayListJava
- Java集合——ArrayListJava
- 集合框架能否存null框架Null
- Java 集合之ArrayListJava
- Java集合之ArrayListJava
- 【Java集合】2 ArrayListJava
- Java集合(一) —— ArrayListJava
- 8、用java的ArrayList集合完成模擬鬥地主案例Java
- 【java】【集合】去除ArrayList中的元素、ArrayList巢狀ArrayListJava巢狀
- 3、List集合——ArrayList、LinkedList
- 集合-ArrayList 原始碼解析原始碼
- ArrayList集合底層原理
- List集合(ArrayList-LinkedList);Set集合(HashSet-TreeSet)
- mybatis自定義List集合解析器MyBatis
- Java中的集合框架深度解析:從ArrayList到ConcurrentHashMap的效能考量Java框架HashMap
- Java集合 ArrayList原理及使用Java
- JAVA集合:ArrayList原始碼分析Java原始碼
- 【Java集合】ArrayList原始碼分析Java原始碼
- Java Collection介面 ArrayList集合(容器)Java
- 集合框架框架
- Java集合之ArrayList原始碼解析Java原始碼
- Day22 集合,ArrayList,泛型泛型
- Java List 常用集合 ArrayList、LinkedList、VectorJava
- java集合原始碼分析(三):ArrayListJava原始碼
- Java集合中的排序方法Java排序
- JAVA基礎 練習-13-ArrayList集合學生物件遍歷Java物件
- java集合框架Java框架
- Java 集合框架Java框架
- 【Java集合原始碼剖析】Java集合框架Java原始碼框架
- 【JAVA集合】JAVA集合框架及其常用方法Java框架
- 使用SpringBoot JPA進行自定義的儲存及批量儲存Spring Boot