对字符串的迭代器进行排序

我有一个字符串的迭代器。

对于排序,我需要从中创建一个列表并使用Collections.sort(list)对其进行排序。

有没有简单的方法来对迭代器进行排序。

迭代器不是容器,它是用于遍历容器元素的实用程序。 因此,如果您只能访问Iterator,则无法更改此迭代器的创建者定义的迭代顺序。

如果无法更改原始容器,则必须在新集合中收集迭代器提供的元素并在其中进行排序。

(了解迭代器可能性的一个好方法是查看JDK类的源代码或实现自己的迭代器)

实际上你不能 ,因为Iterator不是Collection。

如果很明显,你可以这样做

 public static Iterator sortedIterator(Iterator it, Comparator comparator) { List list = new ArrayList(); while (it.hasNext()) { list.add(it.next()); } Collections.sort(list, comparator); return list.iterator(); } } 

使用TreeSet或TreeMap。 它们是已经排序的集合。