【问题标题】:Is it possible to perform an operation on an object in a Hashset without iteration [duplicate]是否可以在没有迭代的情况下对 Hashset 中的对象执行操作[重复]
【发布时间】:2018-10-31 03:59:58
【问题描述】:

如果有任何方法我们可以调用 Hashset 中的对象的方法,该对象本身就是 Hashmap 中的值,而无需创建迭代器或 .forEach(lambda) 或以任何方式依次遍历每个对象?

假设我们有一个像这样的 Hashmap。 Map<Boolean,Set<Place>> selectedMap

考虑 Place 扩展 JComponent 并具有一个布尔值,表示用户是否用鼠标选择了对象,地图包含一个包含所有选定对象和所有未选定对象的集合。

例如,如果我们想调用所有选定对象的remove-方法,有没有办法以上述方式进行?

【问题讨论】:

  • 你总是需要遍历集合,无论是隐式的还是显式的。你不能随意访问它

标签: java hashmap iteration hashset


【解决方案1】:

如果您想为Set 中的所有元素调用方法,则必须遍历该Set 的元素。

也就是说,在 Java 8 中,您可以使用 forEach 方法来代替显式循环:

selectedMap.get(true).forEach(Place::remove);

selectedMap.get(true).forEach(place -> place.remove(...));

如果remove() 方法需要一些参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多