LinkedListのStringをStringの長さで並べ替える必要がありますが、同じ長さの文字列(辞書的にソートされていない)の順序を保持したいと考えています。LinkedListをソートする方法<String>?
サンプル入力:
this
is
just
a
test
サンプル出力:
a
is
this
just
test
私はComparable<LinkedList<String>>
とcompareTo
方法でこれを行うにしようとしていますが、私は正しい出力を得ることはありません(私はまだ辞書編集で並べ替える)
public class Q3_sorting implements Comparable<LinkedList<String>> {
Scanner keyboardScanner = null;
LinkedList<String> fileList = new LinkedList<String>();
// [...] some codeここ
public int compareTo(LinkedList<String> o) {
// TODO Auto-generated method stub
o = fileList;
for (int i = 0; i < fileList.size() -1; i++) {
if (fileList.get(i).length() == o.get(i+1).length()) {
return 0;
}
if (fileList.get(i).length() > o.get(i+1).length()) {
return -1;
}
if (fileList.get(i).length() < o.get(i+1).length()) {
return 1;
}
}
私はその後、私のメインの方法で
Q3_sorting sort = new Q3_sorting(args);
Collections.sort(sort.fileList);
を使用しています。私は、リストをプリントアウト...
が、私は出力としてこれを取得:
a
is
just
test
this
がどのように私はこの問題を修正しますか?
'Collections.sort'を妥当に実装すれば、ソートする前にデータを配列にコピーしてからコピーし直します。しかし、' LinkedList'は一般的に非効率で、通常避けるべきです。 –