A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© javaeea 中级黑马   /  2015-9-21 22:49  /  158 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.heima.bean;

import java.util.Comparator;

public class Student implements Comparable<Student>
{

       
        private String name;
        private int age;
       
        public Student() {
                super();
                // TODO Auto-generated constructor stub
        }
        public Student(String name, int age) {
                super();
                this.name = name;
                this.age = age;
        }
       
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public int getAge() {
                return age;
        }
        public void setAge(int age) {
                this.age = age;
        }
       
        //重写hashCode()和equals(),集合添加元素时调用,元素键重复,值覆盖.
        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + age;
                result = prime * result + ((name == null) ? 0 : name.hashCode());
                return result;
        }
       
        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                Student other = (Student) obj;
                if (age != other.age)
                        return false;
                if (name == null) {
                        if (other.name != null)
                                return false;
                } else if (!name.equals(other.name))
                        return false;
                return true;
        }
       
        //打印输出格式.
        @Override
        public String toString() {
                return "Student [name=" + name + ", age=" + age + "]";
        }
       
        //重写方法,元素添加时调用,排序.
        @Override
        public int compareTo(Student o) {
                // TODO Auto-generated method stub
                int num = this.age - o.age;
                return num==0?this.name.compareTo(o.name):num;
        }
       
       
        //排序时优先调用
        class MyComparator implements Comparator<Student>{//Comparator<Student>

                @Override
                public int compare(Student o1, Student o2) {
                        int num = o1.age - o2.age;
                        return num==0?o1.name.compareTo(o2.name):num;
                }
               
        }
       
       
}

1 个回复

正序浏览
写得好,向你学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马