实际上,如果set1包含set2的某些值(b和d),我想返回true。如果任何一个集合中存在任何一个值,那么它应该返回true
class TreeSetExample{
public static void main(String[] args){
TreeSet set1 = new TreeSet();
TreeSet set2 = new TreeSet();
set1.add("a");
set1.add("b");
set1.add("d");
set1.add("e");
set2.add("c");
set2.add("b");
set2.add("d");
set2.add("g");
boolean b1 = set1.contains(set2);// here i am getting classCastException
}
}
我知道包含只接受对象而不是集合。那么有没有办法检查两个树集之间的值。
答案 0 :(得分:1)
您有Collection
(从Set
接口派生)但只有当参数中的集合的所有元素都包含在当前TreeSet
对象中时,它才会返回true。
要检查是否包含任何元素,您可以使用流方法
当然,您也应该使用泛型类型,而不是实际用于TreeSet<String> set1 = new TreeSet<>();
TreeSet<String> set2 = new TreeSet<>();
...
boolean isAnyMatch = set2.stream()
.anyMatch(s2 -> set1.contains(s2));
System.out.println(isAnyMatch);
的原始类型,并且强烈建议不要使用。
cv::Scalar min(220/2, 190, 80);
cv::Scalar max(260/2, 255, 255);
cv::Mat threshold_frame;
cv::inRange( tempMatHSV, min, max, threshold_frame);
cv::Mat str_el = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(3, 3));
morphologyEx(threshold_frame, threshold_frame, cv::MORPH_OPEN, str_el);
morphologyEx(threshold_frame, threshold_frame, cv::MORPH_CLOSE, str_el);
答案 1 :(得分:0)
首先,我建议您首先不使用原始类型并使用泛型:
if(!Collections.disjoint(set1,set2)){
// do logic
}
现在,您可以检查这两个集合是否有一些共同的元素:
{{1}}