程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java線性表排序示例分享

java線性表排序示例分享

編輯:關於JAVA

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved