avatar
nok V5# Stock
g*7
1
打算用treeset实现一个最小堆。可是用了自己写的comparator以后,大数(如10000)
被认为是不同的数,因此不能去重复。请问为什么呢?
public class Test {
public static void main(String[] args) {
Set treeset = new TreeSet<>(new MyComparator());
Integer[] array = new Integer[args.length];
for (int i = 0 ; i < args.length ; i ++ ) {
array[i] = Integer.valueOf(args[i]);
treeset.add(array[i]);
}
for (Integer i : treeset) {
System.out.print(i + " ");
}
}
public static class MyComparator implements Comparator {
@Override
public int compare(Integer i1, Integer i2) {
if (i1 < i2) {
return -1;
} else if (i1 == i2) {
return 0;
} else {
return 1;
}
}
}
}
avatar
u*d
2
yougong's pick
avatar
w*z
3
Java == compares reference, use equals instead.

【在 g*******7 的大作中提到】
: 打算用treeset实现一个最小堆。可是用了自己写的comparator以后,大数(如10000)
: 被认为是不同的数,因此不能去重复。请问为什么呢?
: public class Test {
: public static void main(String[] args) {
: Set treeset = new TreeSet<>(new MyComparator());
: Integer[] array = new Integer[args.length];
: for (int i = 0 ; i < args.length ; i ++ ) {
: array[i] = Integer.valueOf(args[i]);
: treeset.add(array[i]);
: }

avatar
j*r
4
8位以下可以过,高了应该不行。

【在 w**z 的大作中提到】
: Java == compares reference, use equals instead.
avatar
z*e
5
直接collections.reverseorder()行么。。
avatar
g*7
6
多谢,用equals可以了

【在 w**z 的大作中提到】
: Java == compares reference, use equals instead.
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。