我正在尝试根据arrayList中的用户数量来获得奖励。
我想使其更加灵活的想法是Hashmap
但是我正在寻找使它起作用的想法。
int amountWin = 0;
if(participants.size() >= 10){
amountWin += 100;
} else if(participants.size() >= 5){
amountWin += 50;
}
HashMap<Integer, Integer> bonus = new HashMap<>();
bonus.put(10, 100);
bonus.put(5, 50);
答案 0 :(得分:0)
您可以这样操作:
HashMap<Integer, Integer> participantsByBonus = new HashMap<>();
participantsByBonus.put(10, 100);
participantsByBonus.put(5, 50);
int amountWin = 0;
int bonus = participantsByBonus.keySet().stream()
.filter(participants -> participants >= participants.size)
.min(Integer::compareTo)
.map(participantsByBonus::get)
.orElse(0);
amountWin += bonus;
filter(participants -> participants >= participants.size())
查找所有大于keys
的{{1}},而participants
将选择最小值。
如果参与者人数很少,您将不会获得任何奖金(min()
)。
答案 1 :(得分:0)
普通#include <iostream>
#include <sstream>
#include <string>
int main() {
std::string line, word;
std::getline(std::cin, line);
std::istringstream iss(line);
while (iss >> word) {
// use word as needed...
}
return 0;
}
不提供任何排序保证。对于这样的查询,像Map
这样的NavigableMap
会完全满足您的需求。
TreeMap