Java-不从HashMap中删除

Java-不从HashMap中删除,java,hashmap,Java,Hashmap,好的,我有这个HashMap private Map<String, Player> players = new HashMap<String, Player>(); 我说红色是因为现在只是个测试。我稍后会得到最终正确的答案。无论如何 我用这个来检查 if (e.getKeyCode() == KeyEvent.VK_Q) { for (Player playert : players.values()) {

好的,我有这个HashMap

private Map<String, Player> players = new HashMap<String, Player>();
我说红色是因为现在只是个测试。我稍后会得到最终正确的答案。无论如何

我用这个来检查

  if (e.getKeyCode() == KeyEvent.VK_Q) {
            for (Player playert : players.values()) {
                                        c.append("\n < "+playert.getUsername() + " > ");
                        }
                    }

当你点击Q。。。您正在检查
players
的内容,但是对
destroy()
的调用在哪里?您是否在代码中的任何地方显式调用
destroy()

换句话说,您的方法在您希望调用它的时候没有被调用?你应该使用。
destroy()
仅在相关对象符合GC条件和/或关闭整个浏览器实例(因此不仅是当前页面/选项卡)时调用。只要浏览器实例运行,JVM就可以一直运行。

您可能还应该发布代码,说明在登录时如何/何时将播放器添加到
players
对象。以及实际调用destroy方法的代码。当用户退出applet所在的网页时,会调用destory方法。我编辑了我的帖子,以包含玩家登录时发生的情况。这里不需要仅仅因为问题已经解决就“删除”你的问题。它可以帮助其他有类似问题的人。但它现在不起作用的原因是我又犯了一个错误。不过,你还是应该选择
stop()
。到底是什么问题?现在解决了吗?顺便说一句,现在我再次阅读了您的代码,可能是模糊的代码,但是您是否意识到applet实例根本不在不同的访问者之间共享?
  if (e.getKeyCode() == KeyEvent.VK_Q) {
            for (Player playert : players.values()) {
                                        c.append("\n < "+playert.getUsername() + " > ");
                        }
                    }
< Dan >
< Dan >
< Red >
< Dan >
< Red >
 public void playerLogin() throws IOException {

            Random roll = new Random();
            int newNo = roll.nextInt(200);
            // me.getUsername() = "Guest #" + roll.nextInt(110);
            // String me.getUsername() = getParameter("name");

            me = new Player();
            me.setUsername(getParameter("name"));
            me.setPlayerImage(ImageIO.read(getClass().getResource("me.gif")));
            me.setX(256);
            me.setY(256);
            me.setMap(1);
            me.setCommand("move");
            players.put(me.getUsername(), me);

            repaint();

            System.out.println(me.getUsername() + " was added. player: " + me);
            os.println(me.getUsername() + "|" + me.getX() + "|" + me.getY() + "|"
                        + me.getMap() + "|" + me.getCommand());

            attack = 4;
            defense = 5;
            gold = 542;
            level = 1;
            exp = 53;

      }