@Override
    public boolean equals(Object c)
    {
        if (c == null) {
            return false;
        }
        
        if (c == this) {
            return true;
        }

        //since Combination is a final class, the instanceof operator is safe here
        if (! getClass().equals(c.getClass())) {
            return false;
        }

        Combination param = (Combination) c;

        for (int i = 0; i < 5; ++i) {
            if (! param.getCard(i).equals(cards[i])) {
                return false;
            }
        }

        return true;
    }