排序

来源:互联网 发布:cass软件下载 编辑:程序博客网 时间:2024/05/27 20:13

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;import java.util.Random; /** * * @author www.zuidaima.com * */public class ListSort {     public static void main(String[] args) {        List<User> users = new ArrayList<User>();        int id = 0;        User user = null;         Random random = new Random();         id = random.nextInt(100000);        user = new User(id);        user.setId(id);        users.add(user);         id = random.nextInt(100000);        user = new User(id);        user.setId(id);        users.add(user);         id = random.nextInt(100000);        user = new User(id);        user.setId(id);        users.add(user);         id = random.nextInt(100000);        user = new User(id);        user.setId(id);        users.add(user);         id = random.nextInt(100000);        user = new User(id);        user.setId(id);        users.add(user);         id = random.nextInt(100000);        user = new User(id);        user.setId(id);        users.add(user);         id = random.nextInt(100000);        user = new User(id);        user.setId(id);        users.add(user);         id = random.nextInt(100000);        user = new User(id);        user.setId(id);        users.add(user);         id = random.nextInt(100000);        user = new User(id);        user.setId(id);        users.add(user);         System.out.println("Before sort:");        for (User _user : users) {            System.out.print(_user + " ");        }         Collections.sort(users, new Comparator<User>() {            @Override            public int compare(User user1, User user2) {                Integer id1 = user1.getId();                Integer id2 = user2.getId();                                  //可以按User对象的其他属性排序,只要属性支持compareTo方法                return id2.compareTo(id1);            }        });        System.out.println("\nAfter sort 从大到小倒序:");        for (User _user : users) {            System.out.print(_user + " ");        }                 Collections.sort(users, new Comparator<User>() {            @Override            public int compare(User user1, User user2) {                Integer id1 = user1.getId();                Integer id2 = user2.getId();                                //可以按User对象的其他属性排序,只要属性支持compareTo方法                return id1.compareTo(id2);            }        });        System.out.println("\nAfter sort 从小到大正序:");        for (User _user : users) {            System.out.print(_user + " ");        }    } } class User {    private int id;     public User(int id) {        this.id = id;    }     public int getId() {        return id;    }     public void setId(int id) {        this.id = id;    }     @Override    public String toString() {        return id + "";    }}


function sortByCol($array) {    $sortArray = array();   //根据什么排序  key为排序字段,value为排序规则     for ($i = 1; $i < func_num_args(); $i++) {        if ($i % 2 == 0) {  //如果为偶数            $sortArray[func_get_arg($i - 1)] = func_get_arg($i);        }    }     return sortByMultiCols($array, $sortArray);} /** * 组装排序 * @param array $rowset  需要排序的数组 * @param array $args    排序的字段和规则 * @return array  $rowset   排序号的数组 */function sortByMultiCols($rowset, $args) {    $sortArray = array();    $sortRule = '';     foreach ($args as $sortField => $sortDir) {        foreach ($rowset as $offset => $row) {            $sortArray[$sortField][$offset] = $row[$sortField];        }        $sortRule .= '$sortArray[\'' . $sortField . '\'], ' . $sortDir . ', ';    }     if (empty($sortArray) || empty($sortRule)) {        return $rowset;    }     eval('array_multisort(' . $sortRule . '$rowset);');    return $rowset;}





0 0
原创粉丝点击