我期望只有2个元素,Set但我在打印时会收到3个元素!我怎样才能定义唯一性?
public class test {
public static void main(String[] args) {
class bin {
int a;
int b;
bin (int a, int b){
this.a=a;
this.b=b;
}
public boolean Equals(bin me) {
if(this.a==me.a && this.b==me.b)
return true;
else
return false;
}
@Override
public String toString() {
return a+" "+b;
}
}
Set<bin> q= new HashSet<bin>();
q.add(new bin(11,23));
q.add(new bin(11,23));
q.add(new bin(44,25));
System.out.println(q);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个带有一些String参数的类.我从这个对象中创建了一个实例列表.然后我做了一个比较器排序功能,按不同的主题对列表进行排序.例如,通过StartTime或EndTime.时间以字符串格式定义.这是sort的比较函数:
if (sortType == Sort.STARTTIME){
Collections.sort(routeList, new Comparator<Route>() {
@Override
public int compare(Route o1, Route o2) {
if (Double.parseDouble(o1.getTimeS()) >= (Double.parseDouble(o2.getTimeS())))
return 1;
else
return -1;
}
});
}
Run Code Online (Sandbox Code Playgroud)
它工作,但当我用>或<或<=符号更改比较器时,它将无法工作!或者当我将它们与endTime进行比较时,那么只能使用<=并且我无法按递增顺序对它进行排序!!!! 即使我不能改变地点ot 1和-1.
if (sortType == Sort.ENDTIME){
Collections.sort(routeList, new Comparator<Route>() {
@Override
public int compare(Route o1, Route o2) {
if ((Double.parseDouble(o1.getTimeE()) <= Double.parseDouble(o2.getTimeE()))))
return 1;
else
return -1;
}
});
}
Run Code Online (Sandbox Code Playgroud)
我真的不知道它有什么问题!!!!!!!
public class Route extends Arc {
private String type;
private int secId;
private String tId;
private int event;
private …Run Code Online (Sandbox Code Playgroud)