java線性表排序示例分享
大家可以先看一下這個靜態(tài)方法public static <T> void sort(List<T> list, Comparator<? super T> c)
1.先定義一個模型:
package model;
/**
* User.java
*
* @author 梁WP 2014年3月3日
*/
public class User
{
private String userName;
private int userAge;
public User()
{
}
public User(String userName, int userAge)
{
this.userName = userName;
this.userAge = userAge;
}
public String getUserName()
{
return userName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
public int getUserAge()
{
return userAge;
}
public void setUserAge(int userAge)
{
this.userAge = userAge;
}
}
2.然后定義一個比較器,實現(xiàn)java.util.Comparator接口,在compare()方法編寫比較規(guī)則:
package util;
import java.util.Comparator;
import model.User;
/**
* ComparatorUser.java
*
* @author 梁WP 2014年3月3日
*/
public class ComparatorUser implements Comparator<User>
{
@Override
public int compare(User arg0, User arg1)
{
// 先比較名字
int flag = arg0.getUserName().compareTo(arg1.getUserName());
// 如果名字一樣,就比較年齡
if (flag == 0)
{
return arg0.getUserAge() - arg1.getUserAge();
}
return flag;
}
}
3.排序的時候用java.util.Collections里面的sort(List list, Comparator c)方法:
package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import util.ComparatorUser;
import model.User;
/**
* TestApp.java
*
* @author 梁煒平 2014年3月3日
*/
public class TestApp
{
public static void main(String[] arg0)
{
List<User> userList = new ArrayList<User>();
// 插入數(shù)據(jù)
userList.add(new User("A", 15));
userList.add(new User("B", 14));
userList.add(new User("A", 14));
// 排序
Collections.sort(userList, new ComparatorUser());
// 打印結(jié)果
for (User u : userList)
{
System.out.println(u.getUserName() + " " + u.getUserAge());
}
}
}
4.運行結(jié)果:
A 14
A 15
B 14
相關(guān)文章
springboot如何通過session實現(xiàn)單點登入詳解
單點登錄(SSO)的定義是在多個應用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統(tǒng),下面這篇文章主要給大家介紹了關(guān)于springboot如何通過session實現(xiàn)單點登入的相關(guān)資料,需要的朋友可以參考下2021-12-12
java 中Executor, ExecutorService 和 Executors 間的不同
這篇文章主要介紹了java 中Executor, ExecutorService 和 Executors 間的不同的相關(guān)資料,需要的朋友可以參考下2017-06-06
SpringBoot中@EnableAutoConfiguration注解源碼分析
這篇文章主要介紹了SpringBoot中@EnableAutoConfiguration注解源碼分析,@EnableAutoConfiguration,主要是用于加載Starter目錄包之外的、需要Spring自動生成Bean對象的、帶有@Configuration注解的類,需要的朋友可以參考下2023-08-08
Java中的轉(zhuǎn)換流InputStreamReader解讀
InputStreamReader是Java.io包中的一個類,用于將字節(jié)輸入流轉(zhuǎn)換為字符輸入流,它繼承自java.io.Reader類,提供了兩種構(gòu)造方法,可以使用默認或指定字符集創(chuàng)建實例,常用方法包括讀取字符、判斷是否準備好讀取數(shù)據(jù)和關(guān)閉流2024-09-09
在SpringBoot: SpringBoot里面創(chuàng)建導出Excel的接口教程
這篇文章主要介紹了在SpringBoot: SpringBoot里面創(chuàng)建導出Excel的接口教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
Java數(shù)組轉(zhuǎn)List及Stream的基本方法使用方法
Java?的?Stream?流操作是一種簡潔而強大的處理集合數(shù)據(jù)的方式,允許對數(shù)據(jù)進行高效的操作,如過濾、映射、排序和聚合,這篇文章主要介紹了Java數(shù)組轉(zhuǎn)List及Stream的基本方法使用教程,需要的朋友可以參考下2024-08-08

