Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить проблему на java

Платон Кривовичев Ученик (213), на голосовании 1 год назад
Как на java дать заполнить с клавиатуры пользователю Map? Я пытался с помощью цикла for, но там выдаёт ошибку. Помогите решить с кодом пожалуйста
Голосование за лучший ответ
DM Мастер (1647) 1 год назад
Вот пример кода на Java, который демонстрирует, как заполнить Map с помощью ввода с клавиатуры пользователем:
 import java.util.HashMap; 
import java.util.Map;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Map map = new HashMap<>();

System.out.print("Введите количество элементов в Map: ");
int n = scanner.nextInt();

// Очистка буфера сканера
scanner.nextLine();

for (int i = 0; i < n; i++) {
System.out.print("Введите ключ для элемента " + (i + 1) + ": ");
String key = scanner.nextLine();
System.out.print("Введите значение для элемента " + (i + 1) + ": ");
int value = scanner.nextInt();

// Очистка буфера сканера
scanner.nextLine();

map.put(key, value);
}

// Вывод содержимого Map
System.out.println("Содержимое Map:");
for (Map.Entry entry : map.entrySet()) {
System.out.println("Ключ: " + entry.getKey() + ", Значение: " + entry.getValue());
}
}
}
В этом примере мы используем класс Scanner для ввода с клавиатуры. Мы сначала запрашиваем у пользователя количество элементов, которые он хочет ввести в Map. Затем, с помощью цикла for, мы запрашиваем ключи и значения для каждого элемента Map и помещаем их в Map с помощью метода put(). После ввода всех элементов, мы выводим содержимое Map на экран с помощью цикла for-each и методов getKey() и getValue() у объекта Map.Entry.
Платон КривовичевУченик (213) 1 год назад
спасибо большое, работает! только один вопрос, а зачем нам вообще надо очищать буфер сканнера?
DM Мастер (1647) Платон Кривовичев, Избегание пропуска символов Избегание лишних символов Предотвращение бесконечного цикла
Professional Professional Мудрец (15955) 1 год назад
Пример кода для заполнения пользователем Map с помощью Scanner:
```
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Map<String, Integer> map = new HashMap<>();

System.out.print("Введите количество элементов Map: ");
int count = scanner.nextInt();

for (int i = 0; i < count; i++) {
System.out.printf("Введите ключ для элемента %d: ", i + 1);
String key = scanner.next();
System.out.printf("Введите значение для элемента %d: ", i + 1);
int value = scanner.nextInt();
map.put(key, value);
}

System.out.println("Введенная Map: " + map);
}
}
```
В этом примере пользователю предлагается ввести количество элементов, затем в цикле for заполняются пары ключ-значение. Ввод осуществляется через Scanner.
Похожие вопросы