Sort Arraylist of objects based on object characteristic

I have a class Card which represents playing cards:

public class Card {
    private final int rank;
    private final int suit;
    public Card(int r, int s) {
        rank = r;
        suit = s;
    }
    public int getRank() { return rank; }
    public int getSuit() { return suit; }
}

And I have an ArrayList of cards:

ArrayList<Card> hand = new ArrayList<Card>();
hand.add(new Card(9, 1));
hand.add(new Card(13, 3));
hand.add(new Card(7, 2));
hand.add(new Card(10, 1));
hand.add(new Card(4, 1));

I want to sort these by Card rank, specifically high-to-low. Right now the AL looks like:

(4,1), (10,1), (7,2), (13,3), (9,1)

I want it to look like:

(13,3), (10,1), (9,1), (7,2), (4,1)

Since Card represents playing cards, no two matching tuples of rank and suit exist, although you can have duplicate rank or suit. In this case it doesn't matter which order suit is arranged in case of a 'tie' as long as rank is sorted.

How can I accomplish this?