java修改错误[重复]

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

这个问题在这里已有答案:

我想循环遍历一个arraylist,看看p.name(播放器名称)是否等于用户在文本框中键入的内容;当我输入一个值时,它适用于第一个名称,但是当我更改文本框中的值时,它会引发并发修改错误。

公司课程

 public class Company {

  int shares = 100;
  ArrayList <Player> shareHolders = new ArrayList<>();

  if (condition()) {
    for (Player p: company.shareHolders) { // error highlight this line
            if (p.name.equalsIgnoreCase(txtname.getText()) && 
                    (company.shares <= 100 && company.shares >0)) {

                    company.shares -= Integer.parseInt(txtShares.getText());
                    p.shares += Integer.parseInt(txtShares.getText());
                    System.out.println(p.name+":"+p.shares+" | Company"+company.shares);
                    return;
                }else{
                    company.shareHolders.add(new Player(txtname.getText()));
                    System.out.println(txtname.getText()+" added");
                }
            }
        }
java for-loop javafx-8
1个回答
0
投票

你正在迭代它修改company.shareHolders,这是不允许的(因此ConcurrentModificationException)。

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