Создайте программу, которая может сортировать слова по первой букве. Начните с обычного зацикленного приложения. Ваши данные будут храниться в «Карта строк в список строк». Каждый раз, когда пользователь вводит слово, посмотрите на первую букву и добавьте его в правильный список. После того, как они выйдут, распечатайте все слова для каждой буквы.
public static void main(String[] args) {
Map<String, ArrayList<String>> MyMap = new HashMap<String, ArrayList<String>>();
ArrayList<String> MyList = new ArrayList<String>();
Scanner scanner = new Scanner(System.in);
int input;
String MyString = null;
while (true) {
System.out.println("Press (1) to enter a word. n/Press (2) to exit.");
while (!scanner.hasNextInt()) {
scanner.next();
System.out.println("Need to press number (1) or (2)");
}
input = scanner.nextInt();
if (input == 1) {
System.out.println("Enter a word:");
MyString = scanner.next();
}
if (MyMap.containsKey(MyString.substring(0, 1))) {
MyMap.get(MyString.substring(0, 1)).add(MyString);
}
if (!MyMap.containsKey(MyString.substring(0, 1))) {
MyList = new ArrayList<String>();
MyList.add(MyString);
MyMap.put(MyString.substring(0, 1), MyList);
}
if (input == 2) {
MyMap.entrySet().forEach(entry -> {
System.out.println(entry.getKey() + " " + entry.getValue());
});
break;
}
}
scanner.close();
}
Мой вывод распечатает дубликат последнего слова, которое я ввожу.
Например:
Введите слово: aa ab ba bc Нажмите (1), чтобы ввести слово. Нажмите (2) для выхода. 2 a [aa, ab] b [ba, bc, bc]