2016-10-16 7 views
-2

たとえば、5つの整数のセットを定義したとします。セットからの最小数

int a = 5; 
int b = 7; 
int c = 8; 
int d = 9; 
int e = 10; 

ここでは、5つの値a1、b1、c1、d1、e1を受信します。これらは、私が定義した値に限定されない任意の値を持つことができます。

私が定義したものとフライマッチで受け取った少なくとも3つの値が真であれば真を返したい。

Public String atleastThreeMatches(){ 
(a1=a && b1 = b && c1 = c) || ..... 
} 

大量の値に一致させる必要がある場合、上記のようなことは実現できません。

これにはJavaなどの機能がありますか?

+1

カウンタを使用してください。 'if(何かが一致する)count ++'; 'もし(何か他のものと一致する)count ++';その後、 'if(count> = 3)...'となります。あなたがループ内でこれを行うことができるように、あなたが配列にマッチしているすべてのものを置くことができれば、はるかに良いでしょう。 – ajb

+2

あなたは* Java *または* Javascript *を意味しましたか?私は 'function'キーワードのために尋ねます。 – selbie

+1

int [] ints = new int [] {5,7,8,9,10}; ' – c0der

答えて

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); 
} 
+2

のような配列に5つの整数を定義すれば、もっと簡単になります。 – selbie

+0

ありがとうございました。 +1。 –

1

設定

の交差点は、Javaコレクションフレームワークについて学びます。特に、HashSetなどのSetインターフェイスと実装。

this Questionで議論されているように、Setオブジェクトの交差が必要です。 Set::retainAllメソッドで作業できます。

便宜上、Google Guavaライブラリをプロジェクトに追加してください。そのライブラリは便利な集合交差法を提供します。

結果の交差点のサイズを見て、3つ以上であるか3未満であるかを確認します。

もちろん、プリミティブintではなくIntegerのようなオブジェクトを使用する必要があります。

関連する問題