# ArrayList mischen



## El Duderino (4. Dez 2008)

Hallo ich soll ein Kartendeck mit 52 erstellen und es dann mischen. Hab die Karten in ein ArrayList gegeben und will dieses nun mischen. Kann mir jemand sagen warum das nicht funktioniert. Als Exception kommt:

Exception in thread "main" java.lang.NullPointerException
	at Deck.mischen(Deck.java:28)
	at DeckTest.main(DeckTest.java:10)

Ich weiß einfach nicht warum ich auf ein leeres Objekt angeblich zugreife. Kann mir jemand helfen??


```
public class Deck {

	private static ArrayList <card> deck1;
	private static ArrayList <card> deck2;
	private static card[] deck;   										
    private int kartenverbraucht; 										
    public Deck() {												
       deck = new card[52];
       deck1 = new ArrayList<card>();
       int karten = 0; 													
       for ( int Farbe = 1; Farbe < 5; Farbe++ ) {
          for ( int Wert = 1; Wert < 14; Wert++ ) {
             deck[karten] = new card(Farbe,Wert);
             deck1.add(deck[karten]);
             karten++;
          }
       }
       kartenverbraucht = 0;
    }
    
    
    public void mischen(){
    	Random zahl = new Random();
    	for (int i=0;i<deck1.size();i++){
    		card card = deck1.get(zahl.nextInt(52));
    		deck2.add(card);
    	}
    	deck1 = deck2;
    	deck2.clear();
	}
```

Schon mal vielen Dank!!


----------



## Wildcard (4. Dez 2008)

```
Collections.shuffle(list);
```


----------



## Murray (4. Dez 2008)

El Duderino hat gesagt.:
			
		

> Ich weiß einfach nicht warum ich auf ein leeres Objekt angeblich zugreife. Kann mir jemand helfen??


Helfen tut Dir schon mal der Stack-Trace, der sagt Dir nämlich genau die Zeilennummer (die zum geposteten Code offenbar nicht passt; vermutlich hast Du die Import weggelassen).

Das Problem dürfte aber deck2 sein, das wird nie initialisiert.

Du solltest auch nochmal über die Verwendung von "static" nachdenken; im Moment dürfte das Programm gewisse Schwierigkeiten bekommen, wenn es mehrere Deck-Objekte gibt.


----------



## ARadauer (5. Dez 2008)

private static card[] deck; 

Klassen schreibt man groß

private static Card[] deck;


----------

