Как дать ключи и значения моего созданного списка на карту? - PullRequest
0 голосов
/ 10 февраля 2019
public class HashMapTest2 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        Map<String,String> player = new HashMap<>();
        System.out.println("Enter number of Players");
        Integer p = Integer.valueOf(s.nextLine());
        System.out.println("Enter number of Teams");
        Integer t = Integer.valueOf(s.nextLine());

        List<String> listp = new ArrayList<>();
        for (int i = 0; i<p; i++){
            System.out.println("Enter Player name "+i);
            listp.add(s.nextLine());
        }

        List<String> listt = new ArrayList<>();
        for (int i = 0; i<t; i++){
            System.out.println("Enter Team name "+i);
            listt.add(s.nextLine());
        }
        for (String str1 : listp){
            for (String str2 : listt){
                player.put(str1,str2);
            }
        }
        System.out.println("---------------");
        System.out.println(player);

    }
}

Я хочу назначить имя игрока в качестве ключа и название команды в качестве значения ... кажется, что я не понимаю его правильно.Я попытался использовать цикл for-each, но он дает мне одинаковое значение для каждого ...

1 Ответ

0 голосов
/ 11 февраля 2019

Принимая следующие допущения -

  1. количество игроков и команд одинаково
  2. Мы можем произвольно назначить любого игрока в любую команду (идентификаторов для нее нет)

Вы можете попробовать следующий код, если вышеупомянутые предположения верны -

public class HashMapTest2 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        Map<String,String> player = new HashMap<>();
        System.out.println("Enter number of Players");
        Integer p = Integer.valueOf(s.nextLine());
        System.out.println("Enter number of Teams");
        Integer t = Integer.valueOf(s.nextLine());

        List<String> listp = new ArrayList<>();
        for (int i = 0; i<p; i++){
            System.out.println("Enter Player name "+i);
            listp.add(s.nextLine());
        }

        List<String> listt = new ArrayList<>();
        for (int i = 0; i<t; i++){
            System.out.println("Enter Team name "+i);
            listt.add(s.nextLine());
        }
        for(int i=0;i<listp.size();i++) {
            player.put(listp.get(i), listt.get(i));
        }

        System.out.println("---------------");
        System.out.println(player);

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...