public int compare(Card o1, Card o2) { String[] suitList = new String[] {"H","S","D","C"}; int face1 = o1.getFace(); int face2 = o2.getFace(); if (face1==1) face1=14; if (face2==1) face2=14; if (face1>face2) { return 1; } else if (face2>face1) { return -1; } else if (face1==face2) { int card1place = Integer.MIN_VALUE; int card2place = Integer.MIN_VALUE; for (int i = 0; i < suitList.length; i++) { if (suitList[i].equals(o1.getSuit())) card1place = i; if (suitList[i].equals(o2.getSuit())) card2place = i; } if (card1place==card2place) return 0; if (card1place>card2place) return -1; if (card2place>card1place) return 1; } return 0; }