Molto molto abbozzato:
codice:public class Mazzo { private List<Carta> carte; public Mazzo() { carte = new ArrayList<Carta>(); //... tuoi cicli, creazione carte e tanti inserimenti nella lista //... es. carte.add(new Carta("Spade", i)); } public Carta estraiCarta() { //... estrai indice casuale 0 <= x < carte.size() //... prendi Carta al indice, rimuovi da carte e restituisci } }
Per l'estrazione casuale, ripeto, vedi o Math.random() o la classe java.util.Random. Trovi innumerevoli esempi in rete.
Puoi anche sfruttare una caratteristica utile del remove(int index) di List. Ti restituisce l'elemento che hai rimosso. Quindi non hai nemmeno da fare un get.
E ripeto ancora, se non conosci i "generics", puoi togliere quei <Carta>. Nel estraiCarta dovrai però fare un cast perché solo List ti dà oggetti come Object e devi fare tu un cast a Carta.
Ah, e un'altra cosa che non ho detto prima. Il size() può dare 0 e ovviamente vuol dire che non avresti più carte da estrarre. In questo caso puoi restituire null o lanciare una eccezione (a tua scelta).