【问题标题】:Error while mering 2 groups (Im a beginner)合并 2 个组时出错(我是初学者)
【发布时间】:2022-12-05 01:35:45
【问题描述】:

所以我有一个 MusicBand 类,我想创建一个方法,将 2 个不同组的成员合并为一个并清除空组。

public class MusicBand {
    private int year;
    private String name;
    private List<String> members;

    public MusicBand(String name, int year, List<String> members) {
        this.name = name;
        this.year = year;
        this.members = members;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<String> getMembers() {
        return members;
    }

    public void setMembers(List<String> members) {
        this.members = members;
    }
    public static void transferMembers(MusicBand a, MusicBand b) {
        for (String members : a.getMembers()) {
            b.getMembers().add(members);
            a.getMembers().clear();
        }
    }
    public void printMembers(){
        System.out.println(this.members);
    }
}
public class Test4 {
    public static void main(String[] args) {
        List<String> members1 = new ArrayList<>();
        members1.add("a");
        members1.add("b");
        members1.add("c");
        List<String>members2 = new ArrayList<>();
        members2.add("a2");
        members2.add("b2");
        members2.add("c2");
        MusicBand group1 = new MusicBand("aaa",1990,members1);
        MusicBand group2 = new MusicBand("bbb",2010,members2);
        group1.printMembers();
        group2.printMembers();
        MusicBand.transferMembers(group1,group2);
    }
}

所以它打印出 2 个组,然后不是合并,而是发生“线程“主”java.util.ConcurrentModificationException 中的异常”

我该怎么做才能解决这个问题? 提前致谢。

【问题讨论】:

标签: java


【解决方案1】:

a.getMembers().clear(); 方法移到 for 循环之外。

事实上,您的 transferMembers() 方法可能如下所示:

public static void transferMembers(MusicBand a, MusicBand b) {
    b.getMembers().add(members);
    a.getMembers().clear();
}

根本不需要 for 循环。

【讨论】:

  • 谢谢伙计..我检查了我的代码 500 次,但没有注意到。你是我的英雄! :)
猜你喜欢
  • 1970-01-01
  • 2013-03-14
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 2015-08-17
  • 2015-02-11
相关资源
最近更新 更多