0
    for (Entry<String, Data> entry : list.entrySet()) {
        if(entry.getValue().getRoom() == 1){
            if(entry.getValue().getName().equalsIgnoreCase("RED")){
                 entry.getValue().getPosition() // need to get the lowest free number
                 // between the range of 1-6
            } 
        }
    }

この状況で getPosition の最も低い空きスポットを取得する方法。getPosition の値は 1 ~ 6 で、それぞれの値は Room = 1 と Name = RED の 1 つのみです。たとえば、1,3,4,6 が getPosition (room=1 および name=red) に存在する場合、出力は 2 になります。これは、特定の組み合わせで getPosition で使用できる最小の数値です。あなたが私を助けてくれることを願っています。

4

1 に答える 1

4

最も単純なアプローチは次のようになります。

boolean[] taken = new boolean[7]; //(0-6 inclusive)
// You were never using the key as far as I could see...
for (Data data : list.values()) {
   if (data.getRoom() == 1 && data.getName().equalsIgnoreCase("RED")) {
       taken[data.getPosition()] = true;
   }
}

for (int i = 1; i <= 6; i++) {
    if (!taken[i]) {
        return i;
    }
}

// Do whatever you want if there are no free positions...
于 2012-09-21T22:36:57.957 に答える