例如,假设我定义了5个整数的集合。
int a = 5;
int b = 7;
int c = 8;
int d = 9;
int e = 10;
现在我在飞行中收到五个值a1,b1,c1,d1,e1。这些可以具有任何值,但不限于我定义的值。
如果我在飞行中收到的至少3个值与我定义的值匹配,我想返回true。
Public String atleastThreeMatches(){
(a1=a && b1 = b && c1 = c) || .....
}
如果我必须匹配大量的值,那么做上面的事情是不可行的。
是否有Java中的函数或可以实现此目的的任何函数?
答案 0 :(得分:1)
我不确定你要在哪里声明你的变量。在类声明,方法的参数或堆栈中。但一般逻辑是:
boolean atLeastThreeMatches()
{
int count = 0;
count += (a == a1)?1:0;
count += (b == b1)?1:0;
count += (c == c1)?1:0;
count += (d == d1)?1:0;
count += (e == e1)?1:0;
return (count >= 3);
}
答案 1 :(得分:1)
了解Java Collections框架。特别是Set
接口和实现,例如HashSet
。
您需要this Question上讨论的Set
个对象的交集。您可以使用Set::retainAll
方法。
或者为方便起见,请查看将Google Guava库添加到您的项目中。该库提供了一种方便的交集方法。
查看结果交叉点的大小,看是否多于或少于三个。
当然,您必须使用Integer
之类的对象而不是原始int
。