gpt4 book ai didi

java - 使用 Value 上的监听器实现 HashMap,即 ArrayList

转载 作者:行者123 更新时间:2023-11-30 07:12:49 49 4
gpt4 key购买 nike

我想要一个 Map 实现,每次 ArrayList(Map 的值部分)中的值发生变化时,我都可以添加监听器。

HashMap<String, ArrayList<ImageModel>> filePaths = new HashMap<>();
if (!filePaths.containsKey(key) {
filePaths.put(key, new ArrayList<ImageModel>());
}
filePaths.get(key).add(imageModel);//add a listener to this part

经过this answer之后由于对观察者模式的了解有限,我对如何实现这一点感到困惑。任何帮助将不胜感激。

谢谢

最佳答案

阿米尔的回答对你来说是一个很好的起点。但是,如果您可以在 HashMap 之外操作 ArrayList(看起来您可以在这个问题中做到这一点),那么您可能应该想要包装 ArrayList。如果我们稍微调整一下他的答案,我们可以得到:

public class SpecialArrayList<T> extends ArrayList<T> {

private final Map<K, V> delegatee;

public SpecialArrayList (Map<K, V> delegatee) {
this.delegatee = delegatee;
}

public void add(int i , T value) {
super.add(i, value);
delegatee.actionPerformed/callBack/doTheThing/whatever
}

public void remove (int index) {
super.remove(index);
delegatee.actionPerformed/callBack/doTheThing/whatever
}

// rest of methods here
}

然后只需在 Map 类中添加 actionPerformed() 或 callBack() 或任何您想调用的内容即可!

关于java - 使用 Value 上的监听器实现 HashMap<K,ArrayList>,即 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38919915/

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