Я реализовал следующий код, чтобы попытаться отсортировать ArrayList на основе расположения моей переменной wordToGuess без использования класса Comparator.Это работает для строк, которые не имеют повторяющихся букв, таких как «хриплый».
Однако проблема возникает, когда я изменяю wordToGuess на «звездный».Я понимаю, что проблема связана с indexOutOfBoundExceptionError, но я думал целый день и не могу найти вероятного решения.
Моя главная проблема заключается в перемещении целого слова "звездный" в мой заказанный ArrayList Hint, сохраняя при этом оба "я" внутри.
Любая помощь очень ценится !!Если у вас есть лучшее предложение о том, как я могу отсортировать ArrayList без использования другого класса Comparator, я определенно извлеку уроки из него!Ждем ваших ответов!: D
import java.util.ArrayList;
import java.util.List;
public class ArrayListTest {
public static List<Character> hints = new ArrayList<Character>();
public static List<Character> orderedHint = new ArrayList<Character>();
public static String wordToGuess = "hoarse";
public static String word = "";
public static String fullWord = "";
public static void sortHintsArray() {
System.out.println("hints: " + hints);
System.out.println("orderedHint: " + orderedHint);
for(int i = 0;i<hints.size();i++)
{
int index = wordToGuess.indexOf(hints.get(i));
orderedHint.set(index,hints.get(i));
System.out.println();
System.out.printf("%d iteration: \n",i+1);
System.out.println("hints: " + hints);
System.out.println("orderedHint: " + orderedHint);
}
for(int i =0;i<wordToGuess.length();i++)
{
fullWord += orderedHint.get(i);
}
}
public static boolean checkCorrect() {
return fullWord == word;
}
public static void main(String[] args) {
hints.add('e');
hints.add('r');
hints.add('s');
hints.add('a');
hints.add('h');
hints.add('o');
orderedHint.add('e');
orderedHint.add('r');
orderedHint.add('s');
orderedHint.add('a');
orderedHint.add('h');
orderedHint.add('o');
sortHintsArray();
//System.out.println(hints);
System.out.println(fullWord);
}
}
ВЫХОД:
hints: [e, r, s, a, h, o]
orderedHint: [e, r, s, a, h, o]
1 iteration:
hints: [e, r, s, a, h, o]
orderedHint: [e, r, s, a, h, e]
2 iteration:
hints: [e, r, s, a, h, o]
orderedHint: [e, r, s, r, h, e]
3 iteration:
hints: [e, r, s, a, h, o]
orderedHint: [e, r, s, r, s, e]
4 iteration:
hints: [e, r, s, a, h, o]
orderedHint: [e, r, a, r, s, e]
5 iteration:
hints: [e, r, s, a, h, o]
orderedHint: [h, r, a, r, s, e]
6 iteration:
hints: [e, r, s, a, h, o]
orderedHint: [h, o, a, r, s, e]
hoarse