gpt4 book ai didi

java - 如何更新集合中另一个集合内的元素?

转载 作者:太空宇宙 更新时间:2023-11-04 07:46:00 25 4
gpt4 key购买 nike

我有两个类(class),如下:

public class State {
private static long count = 0;
private long StateNo;
private Set<Arc> arcs;
}

public class Arc {
private char charecter;
private State destState;
private Set<String> letters;
}

现在类词典有一组状态,每个状态又有一组弧。我的问题是如何在设置状态中的特定状态下更新弧集中的特定弧? (更新意味着我需要向该弧中的字母集中添加一个字母。)

最佳答案

您有一组可变对象。

需要注意的一个问题是,如果更改 Arc.letters可以影响 Arc.equals() 的结果,使用 Set<Arc> 时必须小心.

来自 documentation :

Note: Great care must be exercised if mutable objects are used as set elements. The behavior of a set is not specified if the value of an object is changed in a manner that affects equals comparisons while the object is an element in the set. A special case of this prohibition is that it is not permissible for a set to contain itself as an element.

特别是,这意味着您必须从 State.arcs 中删除该元素,修改它,然后重新插入State.arcs .

从你的问题来看,你最好做 arcs一个Map而不是Set 。一方面,您可以通过键查找内容,而这是您目前无法做到的。

关于java - 如何更新集合中另一个集合内的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15268792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com