使用Arrays对数组进行排序(一)

原创 2012年03月21日 16:54:48

一、建立要比较的对象的类Person

package comparable.demo;

public class Person {

    int age;
    String name;

    public Person(String name, int age) {
        this.age = age;
        this.name = name;
    }

    public String toString() {
        return "name:" + name + ",age:" + age;
    }

}

二、实现Comparator接口,建立两种比较方式

package comparable.demo;

import java.util.Comparator;

public class CompparatorA implements Comparator<Object> {

    @Override
    public int compare(Object o1, Object o2) {
        // TODO Auto-generated method stub
        Person p1 = (Person) o1;
        Person p2 = (Person) o2;
        return p1.name.compareTo(p2.name);
    }

}


package comparable.demo;

import java.util.Comparator;

public class ComparatorB implements Comparator<Object> {

    @Override
    public int compare(Object o1, Object o2) {
        // TODO Auto-generated method stub
        Person p1 = (Person) o1;
        Person p2 = (Person) o2;
        return p1.age > p2.age ? 1 : p1.age == p2.age ? 0 : -1;
    }

}

三、测试

package comparable.demo;

import java.util.Arrays;

public class ComparatorTest {

    public static void main(String[] args) {
        Person[] p = new Person[] { new Person("A", 10), new Person("B", 11),
                new Person("C", 12), new Person("D", 14), new Person("E", 13), };
        System.out.println("按姓名排序");
        Arrays.sort(p, new CompparatorA());
        for (int i = 0; i < p.length; i++) {
            System.out.println(p[i]);
        }

//        System.out.println("-------------------");
        System.out.println("按年龄排序");

        Arrays.sort(p, new ComparatorB());
        for (int i = 0; i < p.length; i++) {
            System.out.println(p[i]);
        }
    }

}


Java常用类库——Arrays类(用于普通数组操作)、比较器(Comparable、Comparator 用于对象排序)的使用

学习目标 掌握Arrays类的使用 掌握填充以及排序器 掌握Comparable比较接口的使用 了解比较器的基本排序原理 掌握Comparator比较接口的使用 Arrays类 Arrays类是数...
  • u013087513
  • u013087513
  • 2016年07月06日 15:37
  • 1142

使用Arrays.sort()对自定义的entity按指定属性进行排序。

使用Arrays.sort()对自定义的entity按指定属性进行排序。 若想达到上面功能,自定义entity必须实现Comparable接口,然后重写compareTo()方法。...
  • cleverlzc
  • cleverlzc
  • 2015年10月22日 16:46
  • 1811

JDK源码解析(1)——数据数组排序:Arrays.sort()

(p.s:程序员应该多读代码,特别是前人写的代码。好的程序员对于代码应该有敏锐的“感知能力”,一看到代码就头昏眼花的,注定不是合格的程序员,更谈不上软件工程师 。。。。俺是这么认为的 。今天下载了JD...
  • octopusflying
  • octopusflying
  • 2016年08月31日 19:36
  • 2334

使用Java Arrays类进行数组排序

Java Arrays类进行数组排序 static void sort(int[] a) public static void sort(T[] a,Comparator c)...
  • u013905744
  • u013905744
  • 2016年08月19日 09:21
  • 274

Java Arrays类进行数组排序

排序算法,基本的高级语言都有一些提供。C语言有qsort()函数,C++有sort()函数,java语言有Arrays类(不是Array)。用这些排序时,都可以写自己的排序规则。   Java AP...
  • mingxingxinxing
  • mingxingxinxing
  • 2014年06月24日 15:44
  • 315

Java Arrays类进行数组排序

转载自:https://www.cnblogs.com/xudong-bupt/p/3168618.html Java Arrays类进行数组排序   排序算法,基本的高级语言都有一些提供。C...
  • xiaolonggezte
  • xiaolonggezte
  • 2017年11月27日 10:27
  • 44

【Java】Java Arrays类进行数组排序

排序算法,基本的高级语言都有一些提供。C语言有qsort()函数,C++有sort()函数,java语言有Arrays类(不是Array)。用这些排序时,都可以写自己的排序规则。   Java ...
  • michellechouu
  • michellechouu
  • 2015年07月07日 13:01
  • 326

Java中Arrays类进行数组排序

Java中Arrays类实际是一个实现对数组操作的各种方法的类,可以实现对数组的排序和搜索,数组的比较和对数组增加元素,数组的拷贝和数据转换为字符串的功能。今天我们就来说说Arrays.sort()对...
  • weixin_39303015
  • weixin_39303015
  • 2017年07月24日 17:36
  • 86

Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序

自定义的类要按照一定的方式进行排序,比如一个Person类要按照年龄进行从小到大排序,比如一个Student类要按照成绩进行由高到低排序。这里我们采用两种方式,一种是使用Comparable接口:让待...
  • Yaphat
  • Yaphat
  • 2016年11月14日 09:39
  • 535

JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序

JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序 2015-04-28      0 个评论    来源:永不言弃...
  • evilcry2012
  • evilcry2012
  • 2016年10月08日 13:39
  • 387
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Arrays对数组进行排序(一)
举报原因:
原因补充:

(最多只允许输入30个字)