JAVA重写equals方法
VA问题的引出:今天编写贪吃蛇程序的时候遇到这样一个问题
public class Coordinate {
public int headX, headY;
Coordinate(int headX, int headY) {
this.headX = headX;
this.headY = headY;
}
public boolean equals(Coordinate c) {
if(this.headX == c.headX && this.headY == c.headY) {
return true;
} else {
return false;
}
}
说明:Coordinate 是一个坐标类,重写equals方法的原因是要比较蛇身是否到达了记录下来的蛇头的转弯点,于是自己重写了equals方法,但是发现没有效果,即使x,y的值一样,返回的也是false。
为了进一步熟悉equals方法,于是自己又先写了下面一个验证的程序:
public class TestEquals {
public static void main(String[] args) {
Dog d1 = new Dog(1);
Dog d2 = new Dog(1);
System.out.println(d1 == d2);
System.out.println(d1.equals(d2));
}
}
class Dog {
int weight;
Dog(int weight) {
this.weight = weight;
}
public boolean equals(Dog d) {
if(this.weight == d.weight) {
return true;
} else {
return false;
}
}
}
当然结果是一样的,为了进一步验证,于是就进一步重写了hashCode()方法:
public int hashCode() {
return 0;
}
因为有时候优先比较的是hashCode码。但是结果还是不行。我只好找回原来看过的马士兵老师的视频教程,才发现自己对这个重写很不熟悉,正确的写法应该是:
public class Coordinate {
public int headX, headY;
Coordinate(int headX, int headY) {
this.headX = headX;
this.headY = headY;
}
public int hashCode() {
return 0;
}
public boolean equals(Object obj) {
if(obj == null) {
return false;
&n
相关文档:
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......
一:准备 www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
二:编译源文件得到jar包 使用Ant
1. build vserv-tcpip-0.9.2-src
在vserv-tcpip-0.9.2目录下面建一个tests目录,然后在cmd窗口下进入 ......
package Demo;
// Java泛型数组
public class GenericsDemo30 {
public static void main(String args[]) {
Integer i[] = fun1(1, 2, 3, 4, 5, 6); // 返回泛型数组
fun2(i);
}
public static <T> T[] fun1(T... arg) { // 接收可变参数
return arg; // 返回泛型数组
}
public static <T> ......
下面是20个非常有用的Java程序片段,希望能对你有用。
1. 字符串有整型的相互转换
1
2
String a = String.valueOf(2); //integer to numeric string
3
int i = Integer.parseInt(a); //numeric string to an int
2. 向文件末尾添加内容
01
......
因为经常搬来搬去,自己收集的好的东东也经常跟着我搬,经常找不到。今天整理了整理,以后把自己收集的一些小东西上传到CSDN的下载频道“我的资源”里去(http://xlw2003.download.csdn.net/)。以后自己想用了,也知道上哪儿找去。同时呢,其他朋友也可以下载来用。 ......