ゆの in Javaとかに嵌って放出が遅れましたが、ソート祭りの話題。 非破壊で順序を変更してとりだす GoFデザインパターンのIteratorパターンを用いて元になるListには手を加えずに ソートと同じような効果を得るサンプルです。 public class SortIterator<T> implements Iterator<T>, Iterable<T> { /** ソート対象 */ private Iterable<T> target; /** ソート用Comparator.この実装を変えることで並ばせ方を変えられる */ private Comparator<T> comparator; private T preElement; private List<T> equalValues; /** * コンストラクタ * @param target ソート対象。SetやList