当前位置: 移动技术网 > IT编程>开发语言>Java > java线性表排序示例分享

java线性表排序示例分享

2019年07月22日  | 移动技术网IT编程  | 我要评论

劝君更尽一杯酒作者,快打至尊,圭顿财富平台

大家可以先看一下这个静态方法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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网