【发布时间】:2017-12-11 19:47:32
【问题描述】:
我对下面的代码有一半的问题,它是一种与 Comparable 接口一起使用的插入排序方法。在这种特定情况下,它应该按降序对元素进行排序,这很好。但是,我也试图在同一方法中删除重复项,但它不起作用。我想知道是否真的可以在同一种方法中做到这一点?我已经查看了以下问题Removing Duplicates Inside Insertion Sort 的答案,但我不确定如何在这里应用它。不一定要寻找解决方案,但如果您能指出我可以从那里进一步发展的正确方向。提前致谢。
public void InsertionSortDecrease(){
for(int i=1;i<size();i++){
T keyelement = get(i);
int pos=i;
while(pos > 0 &&
(((Comparable)keyelement).compareTo((Comparable)get(pos-1)) > 0)){
set(pos,get(pos-1));
pos--;
}
set(pos,keyelement);
if(((Comparable)get(pos)).compareTo((Comparable)get(pos+1))
== 0){
remove(pos);
}
}
}
【问题讨论】:
-
您是否为您的
keyObject的类实现了equals()?更好的是,将类型声明为T extends Comparable<T>
标签: java data-structures duplicates comparable insertion-sort