2016-02-23 26 views

回答

3

我相信你對IterableComparable感到困惑。目標完全不同。您可以檢查java api上每個接口的目標。

無論如何,如果您想要使用Collections.sort對列表中的元素進行排序/排序,您必須使用接收比較器的方法。使用Collections.sort(List, Comparator)代替Collections.sort(List)

如何使用者Comparator你可以在Comparator API登記。

2

試試這個。

public class SomeIterable<V extends Comparable<V>> implements Iterable<V> { 
    @Override public Iterator<V> iterator() { ..... } 
} 

Iterable<String> iterable = new SomeIterable<String>(); 
    // ... 
    List<String> sorted = StreamSupport.stream(iterable.spliterator(), false) 
     .sorted() 
     .collect(Collectors.toList()); 
0

要排序的對象集合,你需要他們比較未可迭代。實現與比較邏輯相比較或創建專用比較器。