java線性表排序示例分享。本站提示廣大學習愛好者:(java線性表排序示例分享)文章只能為提供參考,不一定能成為您想要的結果。以下是java線性表排序示例分享正文
年夜家可以先看一下這個靜態辦法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.然後界說一個比擬器,完成java.util.Comparator接口,在compare()辦法編寫比擬規矩:
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>();
// 拔出數據
userList.add(new User("A", 15));
userList.add(new User("B", 14));
userList.add(new User("A", 14));
// 排序
Collections.sort(userList, new ComparatorUser());
// 打印成果
for (User u : userList)
{
System.out.println(u.getUserName() + " " + u.getUserAge());
}
}
}
4.運轉成果:
A 14
A 15
B 14