我有 Set<String> requests = new HashSet<>()
并在其中动态添加了一些字符串值。
我有 Map<TargetSystems> targetSystems = new HashMap<>();
,具有名称键和值中的targetsystems对象的targetsystems。
所以我需要Map上的目标系统。
像map.put(“lms”,targetsystems)和更多来自数据库的东西。 Set<String>
请求具有相同的目标系统名称。如何在Java8中实现这一点。我不想在集合中执行foreach循环,因为我已经创建了线程列表和循环。所以我需要在Java8中使用stream.filter之类的解决方案。
提前谢谢。
3条答案
按热度按时间tzxcd3kk1#
如果要筛选targetsystemsMap:
如果您只想获得过滤过的targetsystem对象:
qc6wkl3g2#
我已经得到了答案和下面的代码请看它的工作良好。情况是,如果我们有map<object(its entity class type)>targetsystems,并将targetsystems实体对象按其实体键的名称放置。现在我有多个同名的请求存在于targetsystemsMap中,所以我需要用hashmap均衡hashset值。我的成就如下:
object[]objects=map<string,object>.values().stream().filter(ts->set.contains(ts.getname()).toarray();
我得到object[]类型,所以我可以很容易地从map中得到targetsystems值。
感谢你们所有人的友好回答,也感谢stack overflow。
irlmq6kh3#
我想你是说
Map<String, TargetSystems>
.您可以制作Map的副本,并使用set.retainal限制Map中的条目: