只需使用一个集合,然后添加元素即可。如果 add 返回 false,则存在欺骗,您可以执行任何您想要的逻辑。Set<String> cards = new HashSet<>();if (!cards.add(something)) { // match of two cards found}如果您需要它是数字,请使用 Integer,而不是 int,因为后者是基元而不是 obj。
正如其他答案所指出的,使用 Set 可以很容易地找到重复项,但无法区分一对、三条和四边形之间的区别,或者两对和葫芦之间的区别。它也无助于找到剩下的扑克牌。更好的方法是简单地对用于表示卡片的数字数组进行排序,然后迭代排序的列表,查找对和三元组(现在将是相邻的)。这也将帮助您寻找顺子,并有助于在相似牌之间进行排名。另外,通常最好从上到下寻找手牌:即,检查同花顺,然后四边形,然后葫芦,然后同花......一直到一对和没有对。