[英]Sort using a comparator as a default method in an iterable interface
我正在尝试在扩展Iterable<T>
的接口中编写一个排序方法,但是它不起作用,我认为它在逻辑上是正确的,但是不会交换元素。 该接口用于创建一个与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();
}
}
您可以使用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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.