1
hcymk2 2014-09-04 09:57:57 +08:00 1
LZ 你旁边有java语法书么?
|
5
buptlee OP @hcymk2
class Node implements Comparable<Node>{ Integer imsi; Integer dist; public int compareTo(Node s){ return dist.compareTo(s.getDist()); } public Node(){ imsi = -1; dist = Integer.MAX_VALUE; } public Node(Integer imsiNo,int distance){ imsi = imsiNo; dist = distance; } public int getDist(){ return dist; } public Integer getImsi(){ return imsi; } public void setImsi(Integer _imsi){ imsi = _imsi; } } |
6
hcymk2 2014-09-04 10:34:03 +08:00 1
把== 都改成equals()先
|
7
davepkxxx 2014-09-04 10:34:50 +08:00 1
out: for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) { if (j == 5) { continue out; } } } |
8
buptlee OP |
9
buptlee OP 您说的是continue的go to 用法是吧,不是这个问题啦,continue还是 终止的是最内层循环。是我数据类型弄错了,不过java这点也太tricky了吧。
|
10
hcymk2 2014-09-04 10:50:58 +08:00 1
那个等于,对刚接触java,而有其他语言经验的人来说有时确实是个坑,没办法的事情。
|
11
buptlee OP 嗯,thanks。一不小心就没注意这点,equals()会把两个参数进行类型转换之后再比较是吗?
|
12
ioth 2014-09-04 11:22:45 +08:00 1
java很强大的,不要内存管理,不要指针,但是类型是强类型。
还得要N多包包,果然是开发智能硬件的利器. |
13
hcymk2 2014-09-04 11:32:30 +08:00 1
@buptlee equals() 在Object 里面是直接return (this == obj);
其他的子类一般都会重写这个方法 ,就看是怎么重写的了。 像Integer 就是 if (obj instanceof Integer) { return value == ((Integer)obj).intValue(); } return false; |
17
ioth 2014-09-04 11:43:32 +08:00 1
java风格喜欢用函数,不喜欢操作符,所谓封装好。
|
19
davepkxxx 2014-09-04 13:03:10 +08:00 1
如果想避免写java常犯的错误,建议买一本Effective Java看看。
|
21
ofisheye315 2014-09-05 08:55:39 +08:00 1
多层循环中使用break/continue 推荐用标记
outer:for(int i = 0; i < 10; i++) { inner:while(flag){ //do sth continue outer; } } |
23
buptlee OP @ofisheye315 又学到一招,简直不谈,。
|