У меня есть задание сделать реестр для класса CD (String artist, String Title), и одним из необходимых в задании было изменение порядка показанных элементов для перехода по названию, а не художникам (в алфавитном порядке). Когда я пытаюсь использовать код ниже, я получаю дубликаты некоторых строк. Есть ли кто-нибудь, кто мог бы мне помочь? : PJava, проблема с возвратом String
private ArrayList<CD> reg;
String showSortedTitles() {
String sortedTitles;
StringBuilder sb = new StringBuilder();
ArrayList<CD> temp = new ArrayList<CD>();
temp.add(reg.get(0));
for (int i = 1; i < reg.size(); i++) {
String beftitle = temp.get(i - 1).getTitle();
String newTitle = reg.get(i).getTitle();
if ((newTitle.compareTo(beftitle) < 0)) {
for (int k = 0; k < temp.size(); k++) {
if (newTitle.equals(temp.get(k).getTitle())) {
temp.remove(k);
}
if (newTitle.compareTo(temp.get(k).getTitle()) < 0) {
temp.add(k, reg.get(i));
break;
} else {
temp.add(reg.get(i));
}
}
}
}
for (int i = 0; i < temp.size(); i++) {
CD cd = temp.get(i);
sb.append(cd.getArtist() + (char) ' ' + (char) '-' + (char) ' ' + cd.getTitle() + (char) '\n');
}
sortedTitles = sb.toString();
return sortedTitles;
}
Просто используйте Collections.sort с компаратором. (Если только не было указано, что вы должны реализовать свой собственный алгоритм сортировки) – wvdz
http://stackoverflow.com/questions/18441846/how-to-sort-an-arraylist-in-java – fantaghirocco