Нахождение строки, которая является первой в алфавитном порядке в ArrayList of Strings
У меня есть ArrayList заметок в виде строк (например, можно было бы "убрать мусор". У меня есть класс заметок, и один из методов должен пройти по заметкам, хранящимся в ArrayList, и найти одну из них. это идет первым в алфавите. Это мой текущий метод:
public String firstAlphabetically() {
String min = "";
for (int i = 0; i < notes.size(); i++) {
for (int j = i + 1; j < notes.size() + 1; i++) {
if ((notes.get(i)).compareTo(notes.get(j)) < 0) {
min = notes.get(i);
} else {
min = notes.get(j);
}
}
}
return min;
}
Однако, когда я запускаю программу, я получаю сообщение об ошибке за пределами этой строки: for (int j = i + 1; j < notes.size() + 1; i++)
, Я знаю, что такое ошибка за пределами границ, но я не могу понять, какая часть этой строки вызовет сбой программы. Кто-нибудь может сказать мне, что я делаю не так?
2 ответа
Проблема 1:
Условие завершения цикла должно быть i < notes.size()
Проблема 2:
Слишком много кода. Попробуйте вместо этого 1-вкладыш:
return notes.stream().sorted().findFirst().orElse(null);
Добавлять:
implements Comparable<Note>
к сигнатуре вашего класса, а затем реализуйте метод CompareTo() в вашем классе Note. Тогда вы можете использовать:
Collections.sort(listOfNotes)