基础辅导:JAVA集合类-Person类
来源:优易学  2011-11-29 13:25:43   【优易学:中国教育考试门户网】   资料下载   IT书店

  这里的所有类都是在后面的会用到的,用于数据存储。
  第一个:
  package collectiontest;
  public class Person implements Comparable {
  private String name;
  private long card;
  public Person(String name, int card) {
  this.name=name;
  this.card=card;
  }
  public Person() {
  // TODO Auto-generated constructor stub
  }
  public String getName() {
  return name;
  }
  public void setName(String name) {
  this.name = name;
  }
  public long getCard() {
  return card;
  }
  public void setCard(long card) {
  this.card = card;
  }
  @Override
  public int compareTo(Object o) {
  Person p=(Person)o;
  String s1=CnToSpell.getFullSpell(this.name);
  String s2=CnToSpell.getFullSpell(p.getName());
  return s1.compareTo(s2);
  }
  public int hashCode(){//重写
  final int PRIME=31;
  int result=1;
  result=PRIME*result+(int)(card^(card>>>32));
  result=PRIME*result+((name==null)?0:name.hashCode());
  return result;
  }
  public boolean equals(Object obj){//重写
  if(this==obj)return true;
  if(obj==null)return false;
  if(getClass()!=obj.getClass())
  return false;
  final Person other=(Person)obj;
  if(card!=other.getCard())
  return false;
  if(name==null){
  if(other.name!=null){
  return false;
  }
  }else if(!name.equals(other.name)){
  return false;
  }
  return true;
  }
  }
  第二个:
  package collectiontest;
  import java.util.Comparator;
  public class Person2 implements Comparable {
  private String name;
  private long card;
  public Person2(String name, long card) {
  this.name = name;
  this.card = card;
  }
  @Override
  public int compareTo(Object o) {
  // TODO Auto-generated method stub
  Person2 person = (Person2) o;
  int result = card > person.card ? 1 : (card == person.card ? 0 : 0 - 1);
  return result;
  }
  public String getName() {
  return name;
  }
  public void setName(String name) {
  this.name = name;
  }
  public long getCard() {
  return card;
  }
  public void setCard(long card) {
  this.card = card;
  }
  //内部类
  static class PersonComparator implements Comparator{
  public static final int NAME=1;
  public static final int ID_CARD=2;
  private int orderByColumn=1;
  public static final boolean ASC=true;
  public static final boolean DESC=false;
  private boolean orderByModel=true;
  @Override
  public int compare(Object o1, Object o2) {
  Person2 p1=(Person2)o1;
  Person2 p2=(Person2)o2;
  int result=0;
  switch(orderByColumn){
  default:
  String s1=CnToSpell.getFullSpell(p1.getName());
  String s2=CnToSpell.getFullSpell(p2.getName());
  if(orderByModel)//升序
  result=(int)(p1.getCard()-p2.getCard());
  else//降序
  result=s2.compareTo(s1);
  break;
  case 2:
  if(orderByModel)
  result=(int)(p1.getCard()-p2.getCard());
  else
  result=(int)(p2.getCard()-p1.getCard());
  }
  return result;
  }
  public void orderByColumn(int orderByColumn){
  this.orderByColumn=orderByColumn;
  }
  public void orderByModel(boolean orderByModel){
  this.orderByModel=orderByModel;
  }
  }//end inner class
  }//end outer class

[1] [2] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训