Я пытаюсь отсортировать массив по длине строки, я знаю о реализации Comparator, но мне было интересно, можно ли это сделать в моей функции без добавления каких-либо дополнительных классов или методов? В идеале я хочу вывести их от самого короткого до самого длинного, но это я могу сделать!
Вот фрагмент метода, с которым я хотел бы реализовать компаратор.
public static void sCompare(BufferedReader r, PrintWriter w) throws IOException {
ArrayList<String> s= new ArrayList<String>();
String line;
int n = 0;
while ((line = r.readLine()) != null) {
s.add(line);
n++;
}
//Collections.sort(s);
Iterator<String> i = s.iterator();
while (i.hasNext()) {
w.println(i.next());
}
}
Спасибо заранее за любые данные!
Collections.sort()
работает наn log(n)
- person jmj   schedule 22.09.2013Comparable
в классеString
), но вам просто нужно обеспечить реализациюComparator
- person jmj   schedule 22.09.2013awk '{print length, $0;}' | sort -n | sed -e 's/^[0-9][0-9]* //g'
:) - person Ray Toal   schedule 22.09.2013