我有以下内容HashMap
,其中key
是是,String
并且value
由表示ArrayList
:
HashMap<String, ArrayList<String>> productsMap = AsyncUpload.getFoodMap();
ArrayList<String> foods
我的应用程序中还实现了另一个。
我的问题是,从我的第二个中找出我是否HashMap
包含特定内容的最佳方法是什么?String``ArrayList
我尝试过但没有成功:
Iterator<String> keySetIterator = productsMap.keySet().iterator();
Iterator<ArrayList<String>> valueSetIterator = productsMap.values().iterator();
while(keySetIterator.hasNext() && valueSetIterator.hasNext()){
String key = keySetIterator.next();
if(mArrayList.contains(key)){
System.out.println("Yes! its a " + key);
}
}
为什么不:
// fast-enumerating map's values
for (ArrayList<String> value: productsMap.values()) {
// using ArrayList#contains
System.out.println(value.contains("myString"));
}
而且,如果您必须遍历整个ArrayList<String>
,而不是只寻找一个特定值:
// fast-enumerating food's values ("food" is an ArrayList<String>)
for (String item: foods) {
// fast-enumerating map's values
for (ArrayList<String> value: productsMap.values()) {
// using ArrayList#contains
System.out.println(value.contains(item));
}
}
编辑
过去,我用一些Java 8惯用语对此进行了更新。
Java 8流API允许使用更具声明性(并且可以说是优雅的)的方式来处理这些类型的迭代。
例如,这是一种实现方法(略为冗长):
// iterate foods
foods
.stream()
// matches any occurrence of...
.anyMatch(
// ... any list matching any occurrence of...
(s) -> productsMap.values().stream().anyMatch(
// ... the list containing the iterated item from foods
(l) -> l.contains(s)
)
)
…这是实现相同目的的一种更简单的方法,最初是迭代productsMap
值而不是内容foods
:
// iterate productsMap values
productsMap
.values()
.stream()
// flattening to all list elements
.flatMap(List::stream)
// matching any occurrence of...
.anyMatch(
// ... an element contained in foods
(s) -> foods.contains(s)
)
我是一个新的论坛和Appium/Android自动化,我需要帮助,以验证对象是否存在我的应用程序之前,我采取下一个行动。 信息:[BOOTSTRAP][info]返回结果:{“value”:“未找到元素”,“status”:7} 信息:将命令推送到appium工作队列:[“find”,{“strategy”:“name”,“selector”:“John Doe”,“context”:“”,“mu
在给定的json文档中,如何验证是否存在json路径? 我使用的是jayway jsonpath,代码如下 上述代码可能会引发以下异常 通用域名格式。乱穿马路。jsonpath。PathNotFoundException:路径:$['a.b.c']没有结果 为了缓解这种情况,我打算在尝试使用JsonPath读取该路径之前验证该路径是否存在。阅读 作为参考,我看了以下两个文档,但没有真正得到我想要的
问题内容: 屏幕上有很多单选按钮。选择单选按钮时,其属性为选中。如果未选择单选按钮,则不存在选中的属性。我想创建一个方法,如果该元素不存在,它将通过。 我正在使用Selenium WebDriver和Java。我知道我可以使用来检索属性。我只是不确定如何验证属性不存在,以及如何在不存在属性时通过测试(如果存在则失败)。 选中单选按钮时 未选中单选按钮时 我要在不存在选中属性的情况下通过测试 问题答
我需要验证一个Map值是否为null,因为我经常使用集合,愿意实现验证Map值的通用方法,所以尝试了这个 有没有人能帮助我更深入地理解这个逻辑。
登录后我有一个文本字段。登录后,光标将自动聚焦在该文本字段上。如何验证该文本字段上是否存在光标/焦点? 以下是文本字段的HTML代码:
我有点被这个函数的名字搞糊涂了。为什么不只是?它没有验证的是什么?如果我使用这个函数,它还能在某些情况下抛出吗?我能不能以某种方式“尝试添加”而不得到任何异常,并且如果失败时只返回false? 编辑:我认为这两个问题是相互对立的。如果我用调用,它实际上是添加了无效的头,还是如果它们无效就返回false?