【发布时间】:2018-04-16 12:03:53
【问题描述】:
无法理解 List.contains() 方法的工作原理,
strAttributeList - 选定属性列表 subscriptionAttrList- 所有属性列表
我想检查 strAttributeList 中的每个选定属性是否应该存在于 subscriptionAttrList 中,但我无法检查 contains 方法的未知行为。 p>
演示列表值: strAttributeList= {"全部"} subscriptionAttrList = {"ALL", "NONE", "PO"}
for(String strAttrValue : strAttributeList){
if(!subscriptionAttrList.contains(strAttrValue))
return false;
};
O/P:
subscriptionAttrList.contains(strAttrValue); //false
subscriptionAttrList.contains(strAttrValue.toString); //false
subscriptionAttrList.contains(""+strAttrValue+""); //false
subscriptionAttrList.contains(""+strAttrValue.toString+""); //false
subscriptionAttrList.contains("ALL"); //true
怎么所有的输出都是假的,第五个是真的?
请提供比较 2 个列表的值的正确方法,因为这需要我很多时间。提前谢谢你。
【问题讨论】:
-
什么是o/p? ..
-
在
subscriptionAttrList中的元素与strAttributeList中的唯一元素不匹配后,您将返回false。尝试调试您的代码。 -
contains()的工作原理并不为人所知。它可以按您的预期工作,任何错误都在您自己的代码中。 -
O/P 中
strAttrValue中有什么内容? -
为什么不
subscriptionAttrList.containsAll(strAttributeList)
标签: java arrays list arraylist collections