我试图在扩展Iterable<T>
的界面中编写排序方法,但它不起作用,我认为它是&#34;逻辑上&#34;正确但它不会交换元素。该接口用于创建一个非常类似于Java的List,我的目标是创建一个受LinkedList启发的类,因此它具有ListIterator。有什么建议?这是方法的代码:
default void sort(Comparator<T> c){
ListIterator<T> lit = listIterator();
boolean scambio = true;
while(scambio){
scambio = false;
T n1 = null;
T n2;
if(lit.hasNext())
n1 = lit.next();
while(lit.hasNext()){
n2 = lit.next();
if(c.compare(n1,n2) > 0){
T tmp = n2;
n2 = n1;
n1 = tmp;
scambio = true;
}
n1 = n2;
}
lit = listIterator();
}
}
答案 0 :(得分:1)
您可以使用Collections.sort来有效地对商品进行排序:
Collections.sort(lit, new Comparator<T>() {
@Override
public int compare(T n1, T n2) {
// You may use any logic here considering n1 and n2
return n1.compare(2n);
}
}