此程序将打印所有团队名称,而不是仅显示规则破坏者

问题描述 投票:0回答:1

以下程序首先获取两个整数,合法足球运动员的人数(n)和球队人数(m)。在接下来的n行中,它将合法参与者的名称作为哈希表的关键字,并将其所有值字符串为零。然后将使用球队及其选择的球员的名字。如果一个团队选择了一个名字不属于合法球员的球员,则该球队违反了法律,其姓名将被列为有罪,或者如果一个团队选择了另一个球队已经选择的球员,则两个球队的名字将被打印。我把它放在树形目录中,因为我希望按字母顺序打印名称。但是当我运行程序时,所有团队的名字都打印在哪里了?

    import java.util.HashMap;
    import java.util.Scanner;
    import java.util.TreeSet;

    public class Tamrin1_2_1 {
        public static void main(String[] args) {
            String player,team;
            int numberOfTeams,numberOfPlayers;
            Scanner scanner=new Scanner(System.in);
            HashMap<String,String> teamsAndPlayers=new HashMap<String,String>();
            TreeSet<String> guilty=new TreeSet<String>();
            numberOfPlayers=scanner.nextInt();
            numberOfTeams=scanner.nextInt();
            for(int i=0;i<=numberOfPlayers;i++) {
                teamsAndPlayers.put(scanner.nextLine(), "0");
            }
            for(int i=0;i<numberOfTeams;i++) {
                team=scanner.nextLine();
                numberOfPlayers=scanner.nextInt();
                for(int j=0;j<=numberOfPlayers;j++) {
                    player=scanner.nextLine();
                    if(teamsAndPlayers.containsKey(player)) {
                        if(teamsAndPlayers.get(player).equals("0")) {
                            teamsAndPlayers.put(player, team);
                        }
                        else {
                            guilty.add(team);
                            guilty.add(teamsAndPlayers.get(player));
                         }
                    }
                    else {
                        guilty.add(team);
                    }
                }
            }
            System.out.println(guilty);

            }
        }

这是示例输入:

    10 4
    dani carvajal
    eder militao
    sergio ramos
    raphael varane
    nacho
    eden hazard
    toni kroos
    martin odegaard
    karim benzema
    luka modric
    real madrid
    3
    martin odegaard
    karim benzema
    sergio ramos
    valencia
    2
    dani carvajal
    luka modric
    real sociedad
    2
    martin odegaard
    nacho
    atletico madrid
    3
    raphael varane
    eden hazard
    toni kroos

我想要的输出是:

    real madrid
    real sociedad

但是我得到的输出是:

    atletico madrid
    real madrid
    real sociedad
    valencia
java hashmap treeset
1个回答
0
投票

实际上,我会怀疑这些循环条件:

© www.soinside.com 2019 - 2024. All rights reserved.