<b>java api接口篇(二)下</b>[Java编程]
本文“<b>java api接口篇(二)下</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
编写你自己的Comparable范例
Comparable 接口由一个单一的办法构成:
public interface Comparable {
public int compareTo(Object o);
}
compareTo 办法将接纳对象与特定对象举行对比,并在接纳对象小于、等于或大于特定对象时辨别返回负整数、空或一个正整数.假如特定对象不能与接纳对象相对比,该办法扔出一个ClassCastException. 这是一个表示某人姓名的类(a class representing a person"s name), 它实现了 Comparable:
import java.util.*;
public class Name implements Comparable {
private String firstName, lastName;
public Name(String firstName, String lastName) {
if (firstName==null || lastName==null)
throw new NullPointerException();
this.firstName = firstName;
this.lastName = lastName;
}
public String firstName() {return firstName;}
public String lastName() {return lastName;}
public boolean equals(Object o) {
if (!(o instanceof Name))
return false;
Name n = (Name)o;
return n.firstName.equals(firstName) &&
n.lastName.equals(lastName);
}
public int hashCode() {
return 31*firstName.hashCode() + lastName.hashCode();
}
public String toString() {return firstName + " " + lastName;}
public int compareTo(Object o) {
Name n = (Name)o;
int lastCmp = lastName.compareTo(n.lastName);
return (lastCmp!=0 ? lastCmp :
firstName.compareTo(n.firstName));
}
}
为了使这个例子短一些,该类遭到了一点限制:它不支持中间名,它要求必须同时具有first name 和 last name, 而这不是在全世界都通用的.固然如此,这个例子仍有几个重要之处:
Name 对象是不变的( immutable).作为相等、不变范例的全部别的事情就是若何做的问题,分外是对那些将被用来作为 Sets 中的元素或 Maps 中的键的对象来说,更是如此.假如你对这些 对象集 中的元素或键做了更改,这些 对象集 将中止.
以上是“<b>java api接口篇(二)下</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |