时间:2021-05-19
大家可以先看一下这个静态方法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
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java线性表接口的实例详解前言:线性表是其组成元素间具有线性关系的一种线性结构,对线性表的基本操作主要有插入、删除、查找、替换等,这些操作可以在线性表的任何位
线性表是其组成元素间具有线性关系的一种数据结构,对线性表的基本操作主要有,获取元素,设置元素值,遍历,插入,删除,查找,替换,排序等。而线性表可以采用顺序储存结
本文实例为大家分享了python实现线性表顺序的具体代码,供大家参考,具体内容如下线性表1.抽象数据类型表示(ADT)类型名称:线性表数据对象集:线性表是n(>
本文实例讲述了JS实现线性表的顺序表示方法。分享给大家供大家参考,具体如下:线性表的顺序表示指的是用一组地址连接的存储单元依次存储线性表的数据元素。通常称这种存
前言:在前面我们提到数据结构的线性表。那么今天我们详细看下Java源码是如何实现线性表的,这一篇主要讲解顺序表ArrayList链式表下一篇在提及。1:Arra