[英]How can I generate all unique card pairs from a list of cards?
我正在實施一個手牌力量評估器,用於在處理單手和翻牌后評估其余47張牌中的所有可能對。
我已經實現了評估器,但是我缺少要比較的所有可能的組合。 我很想為Hand創建一個類,它由兩張卡組成,並將每個組合存儲在一個集合HashSet中。 我應該選擇哪種數據結構? 如果HashSet是最好的,那么我如何強制Hand的每個實例化都是唯一的?
HashSet
看起來很合理,但由於排序可能稍后TreeSet
您可能需要考慮TreeSet
。 如果在Hand
實現equals
和compareTo
/ Comparable
方法,則Set
將強制唯一性。
我會給卡片編號或將它們放在一個列表中。
如果您使用列表,則可以執行此操作
Set<Card> inHand = ...
for(int i=0;i<list.size();i++) {
Card card1 = list.get(i);
if (inHand.contains(card1)) continue;
for(int j=i+1;j<list.size();j++) {
Card card2 = list.get(j);
if (inHand.contains(card2)) continue;
// process card1 and card2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.