一组中的最小数字为真

时间:2016-10-16 05:57:12

标签: java

例如,假设我定义了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中的函数或可以实现此目的的任何函数?

2 个答案:

答案 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