集合框架-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;
}
}
相關文章
- 集合框架-ArrayList儲存字串、自定義物件並遍歷泛型版框架字串物件泛型
- 集合框架-去重自定義物件案例框架物件
- 集合框架-HashSet儲存字串、自定義物件並遍歷框架字串物件
- 集合框架-HashMap集合的案例框架HashMap
- 集合框架2- ArrayList框架
- Java集合框架(一)-ArrayListJava框架
- Java 集合框架(二)—— ArrayListJava框架
- 集合框架-ArrayList集合的toString()方法原始碼解析框架原始碼
- 純手寫Arraylist集合框架框架
- 集合框架-集合的巢狀遍歷(HashMap巢狀ArrayList)框架巢狀HashMap
- 集合框架-集合的巢狀遍歷(ArrayList巢狀HashMap)框架巢狀HashMap
- NSUserDefault 儲存自定義物件物件
- C# 泛型集合的自定義型別排序C#泛型型別排序
- Redis序列化儲存Java集合List等自定義型別RedisJava型別
- Java 集合框架------ArrayList原始碼分析Java框架原始碼
- Java 集合框架 ArrayList 原始碼剖析Java框架原始碼
- 集合框架(List儲存字串並遍歷)框架字串
- 集合框架原始碼學習之ArrayList框架原始碼
- Java集合——ArrayListJava
- JAVA集合-ArrayListJava
- java集合物件排序總結Java物件排序
- 集合框架能否存null框架Null
- 集合框架-去重字串案例框架字串
- Java 集合之ArrayListJava
- Java集合之ArrayListJava
- 【Java集合】2 ArrayListJava
- Java集合(一) —— ArrayListJava
- 8、用java的ArrayList集合完成模擬鬥地主案例Java
- 工具類——自定義Collections集合方法
- 集合框架-去重字串案例-2框架字串
- 集合框架-TreeMap集合框架
- 集合框架-Set集合框架
- 集合框架-TreeSet集合框架
- 集合框架-Collection集合框架
- 集合框架-List集合框架
- 【java】【集合】去除ArrayList中的元素、ArrayList巢狀ArrayListJava巢狀
- 集合-ArrayList 原始碼解析原始碼
- ArrayList集合底層原理