Array füllen

bluej12

Mitglied
Hallo,
ich arbeite an einer einfachen Würfelsimulation, dieein Array vom Typ int beinhaltet, in dem für die sechs möglichen Würfelergebnisse deren Häufigkeit gespeichert werden soll. Das Würfel klappt problemlos, aber der Compiler will nicht als Starthäufigkeit Null zulassen und fordert eine eckige Klammer.
Wo ist mein Denk-/Schreibfehler?
Vielen Dank für die Hilfe!

Java:
import java.util.Random;
public class Wuerfel
{
    private int[] haeufigkeit;
    private int wert;

    public Wuerfel()
    {
        int haeufigkeit [] = new int [6];
        int haeufigkeit[0]=0;   //erster problematischer Ausdruck:   ']'expected
        int haeufigkeit[1]=0;
        int haeufigkeit[2]=0;
        int haeufigkeit[3]=0;
        int haeufigkeit[4]=0;
        int haeufigkeit[5]=0;
    }
    
    public int wuerfeleEinmal()
    {
        wert=(int)(Math.random()*6+1);
        return wert;
    }
}
 

eRaaaa

Top Contributor
Java:
   int haeufigkeit [] = new int [6];
   int haeufigkeit[0]=0;   //erster problematischer Ausdruck:   ']'expected
//....

lasse das int in den Zeilen 10-15 weg ! In Zeile 9 sagst du ja schon dass haeufigkeit ein int-Array ist!
 

bluej12

Mitglied
Ja, ich will aber dass bei jedem Wurf mitgezählt wird, wieoft die Zahl gewürfelt wurde um eine Statistik zu erstellen. Wenn ich das Objekt per BlueJ inspiziere wird aber "null" und nicht "0" angezeigt.
 
Zuletzt bearbeitet:

Marco13

Top Contributor
*abkürz*
Java:
import java.util.Random;
public class Wuerfel
{
    private int[] haeufigkeit;
    private int wert;
 
    public Wuerfel()
    {
        haeufigkeit [] = new int [6];
    }
    
    public int wuerfeleEinmal()
    {
        wert=(int)(Math.random()*6+1);
        haeufigkeit[wert]++;
        return wert;
    }
}
[/Java]
 

bluej12

Mitglied
Die Konsole gibt immer noch java.lang.NullPointerException at Wuerfel.wuerfeleEinmal(Wuerfel.java:17) aus.
Momentaner Quellcode:

Java:
import java.util.Random;
import java.util.Arrays;
public class Wuerfel
{
    private int[] haeufigkeit;
    private int wert;

    public Wuerfel()
    {
        int haeufigkeit [] = new int [6];
        Arrays.fill( haeufigkeit, 0 );
    }
    
    public int wuerfeleEinmal()
    {
        wert=(int)(Math.random()*6+1);
        haeufigkeit[wert]++;
        return wert;
    }
}
 

eRaaaa

Top Contributor
Ich hatte oben übersehen, dass du das Array als Instanzvariable auch gespeichert hast(was auch richtig ist) und dass die Klammern und das int bei
Code:
[B] int haeufigkeit [][/B] = new int [6];
auch weg müssen! Weil sonst erstellst du eine neue lokale Variable. Marco hatte das doch aber schon für dich geändert? (wobei er auch die Klammern übersehen hat, die müssen weg :D )
Und
Java:
        wert=(int)(Math.random()*6+1);
        haeufigkeit[wert]++;
da könnt`s auch krachen !!!
 
Zuletzt bearbeitet:

Andi_CH

Top Contributor
Java:
import java.util.Random;
import java.util.Arrays;
public class Wuerfel
{
    private int[] haeufigkeit; // die bleibt immer 0
    private int wert;

    public Wuerfel()
    {
        int haeufigkeit [] = new int [6]; // hier gibt es eine NEUE variable haeufigkeit
        Arrays.fill( haeufigkeit, 0 );
    } // ab hier existiert die neue Variable nicht mehr!
    
    public int wuerfeleEinmal()
    {
        wert=(int)(Math.random()*6+1);
        haeufigkeit[wert]++;
        return wert;
    }
}

Meine Variante:
Java:
import java.util.Arrays;

public class Wuerfel
{
	private int[] haeufigkeit = {0,0,0,0,0,0};
	private int wert;

	public int wuerfeleEinmal() {
		wert=(int)(Math.random()*6+1);
		haeufigkeit[wert-1]++;
		return wert;
	}
	
	@Override
	public String toString() {
		return Arrays.toString(haeufigkeit);
	}

	public static void main(String[] args) {
		Wuerfel meinWuerfel = new Wuerfel();
		for(int i=0; i<100; i++) {
			System.out.println(i + " ter Wurf : " + meinWuerfel.wuerfeleEinmal());
		}
		System.out.println("Statistik : " + meinWuerfel);
	}
}

Wenn es zu Übungszwecken ein expliziter Konstruktor sein muss, sieht es halt so aus, aber in diesem Fall ist es unnötig.

Java:
public class Wuerfel
{
	private int[] haeufigkeit;
	private int wert;
	
	public Wuerfel() {
		haeufigkeit = new int[6];
		Arrays.fill(haeufigkeit, 0);
	}
......
 
B

bone2

Gast
du bekommst:
Java:
    public Wuerfel()
    {
        haeufigkeit [] = new int [6];
    }
[/Java][/QUOTE]

und machst
[quote="bluej12, post: 725794"][code=Java]    public Wuerfel()
    {
        int haeufigkeit [] = new int [6];
    }
daraus... warum?

richtig ist alleridngs:
Java:
    public Wuerfel()
    {
        haeufigkeit = new int [6];
    }

und fill muss man auf ein int array auch nicht machen, das ist schon voller 0
 

Andi_CH

Top Contributor
und fill muss man auf ein int array auch nicht machen, das ist schon voller 0

Hast du schon einmal sicherheitsrelevante SW geschrieben :) Es schadet aber auch nichts wenn man es initialisiert und so wenig wie bei Java garantiert ist, wissen wir nicht ob es die übernächste Version auch so macht.

Was mich mehr wundert ist die redundante Information - hab ich alles schon kommentiert.
 

eRaaaa

Top Contributor
Hast du schon einmal sicherheitsrelevante SW geschrieben :) Es schadet aber auch nichts wenn man es initialisiert und so wenig wie bei Java garantiert ist, wissen wir nicht ob es die übernächste Version auch so macht.

Mit was sollten sie es denn deiner Meinung nach initialisieren in der nächsten Version? Mit null? Geht nicht und alles andere würde auch einfach keinen Sinn machen, zu dem steht`s auch so in der Java Language Specification, also würde ich davon schon ausgehen!
Falls du so wenig vertrauen hast, kannste ja array[0] abfragen oder glaubst du in der nächsten Version wird das Array beliebig/zufällig gefüllt von –2.147.483.648 ... 2.147.483.647 ? :D
 

Marco13

Top Contributor
Es schadet aber auch nichts wenn man es initialisiert und so wenig wie bei Java garantiert ist, wissen wir nicht ob es die übernächste Version auch so macht.

Wenn man eine Liste mit 100000 Einträgen sortiert, "schadet" es auch nicht, wenn man sie nochmal sortiert ;) Es "schadet" schon, in dem Sinne, dass es überflüssig ist und Zeit kostet. Ein paar Mikrosekunden, ja, aber ... warum sollte man sich die Arbeit machen, etwas hinzuschreiben, was dem Computer Arbeit macht, und nichts bringt? (OK, das mache ich den ganzen Tag, aber da krieg' ich Geld dafür :D). Man kann sich übrigens drauf verlassen, dass das auch bei der nächsten Version von Java noch so ist. Die Vehemenz, mit der bei Java Rückwärtskompatibilität gewahrt wird, wurde schon von manchen als Hemmschuh für neue Enwicklungen kritisiert, aber sie hat auch Vorteile ... (wer schonmal ein Visual Studio 6-Projekt mit Qt 3.4 auf VS2010 mit Qt 4.3 hiefen mußte (oder müßte) weiß das zu schätzen....)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
sashady 2D-Array mit Zahlenmuster füllen Java Basics - Anfänger-Themen 4
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
T Array füllen Java Basics - Anfänger-Themen 11
A Array richtig füllen Java Basics - Anfänger-Themen 2
krgewb Array später füllen Java Basics - Anfänger-Themen 1
A Ein Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 4
B Array via Schleife mit ungeraden bzw geraden Zahlen füllen Java Basics - Anfänger-Themen 7
A Methoden Array mit Methode nacheinander füllen Java Basics - Anfänger-Themen 3
K Array mit for-each Schleife füllen Java Basics - Anfänger-Themen 5
Z Array-Index einmalig je mit Random füllen Java Basics - Anfänger-Themen 7
K String Array basierend auf int Array füllen Java Basics - Anfänger-Themen 2
Y Erste Schritte Spielfeld, Array füllen mit Treffern...?! Java Basics - Anfänger-Themen 3
K Zweidimensionales Array erstellen und zufällig mit 0 und 1 füllen Java Basics - Anfänger-Themen 11
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
W Erste Schritte füllen Attribute java Klasse in for Schleife und Array Java Basics - Anfänger-Themen 16
B Methoden Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 4
C zwei dimensionales array mit "1 " füllen Java Basics - Anfänger-Themen 8
H zweidimensionales array füllen Java Basics - Anfänger-Themen 6
JG12111989 2D Array mit Array[] füllen Java Basics - Anfänger-Themen 21
J Array mit Zahlen füllen Java Basics - Anfänger-Themen 28
W JTable mit einem JButton-Array füllen Java Basics - Anfänger-Themen 4
V Methoden Matrix als 1D Array mit Werten füllen Java Basics - Anfänger-Themen 12
B Array erstellen,ausgeben,mit zufallszahlen füllen aber wie ? Java Basics - Anfänger-Themen 1
S Mehrdimensionales Array füllen Java Basics - Anfänger-Themen 1
P Ein Array mit der Eingaber der User füllen und ausgeben Java Basics - Anfänger-Themen 6
M Kann einen Array nicht füllen, im Nachhinein nur "null"-Werte Java Basics - Anfänger-Themen 11
M char Array füllen Java Basics - Anfänger-Themen 2
L String array mit split füllen Java Basics - Anfänger-Themen 14
T Erste Schritte Int Array zufällig mit Zahlen füllen Java Basics - Anfänger-Themen 7
P Objekt mit Werten aus Array füllen Java Basics - Anfänger-Themen 10
L GridLayout mit JLabel-Array füllen Java Basics - Anfänger-Themen 12
X Array Füllen Java Basics - Anfänger-Themen 16
E Array mit Zufallswerten von 1 bis 45 ohne Wiederholung füllen Java Basics - Anfänger-Themen 21
R Nächstes leeres Feld im array füllen? Java Basics - Anfänger-Themen 14
S Array Liste füllen Java Basics - Anfänger-Themen 16
J double-Array mit Werten von Methode füllen und an andere Methode übergeben Java Basics - Anfänger-Themen 3
K Int Array mit "Leerzeichen" füllen Java Basics - Anfänger-Themen 2
F Datentypen Zweidimensionales Array füllen Java Basics - Anfänger-Themen 6
D Array zufällig mit 1 oder 0 oder mit true oder false füllen Java Basics - Anfänger-Themen 5
H mit Schleife ein Array mit Objekten füllen Java Basics - Anfänger-Themen 3
S Mehrdimensionales Array füllen und kopieren! Java Basics - Anfänger-Themen 14
B Int Array mit Zufallszahlen füllen Java Basics - Anfänger-Themen 8
G Array mit Stringtokenizer füllen Java Basics - Anfänger-Themen 2
C Array mit int Werten füllen ( von z.B. 1 - x ) Java Basics - Anfänger-Themen 13
M Zweidimensionales dynamisches Array füllen Java Basics - Anfänger-Themen 2
S Object Array füllen Java Basics - Anfänger-Themen 8
G mit setMethode array füllen Java Basics - Anfänger-Themen 4
0 Array mit unterschiedlichen Objekten füllen? Java Basics - Anfänger-Themen 8
R String Array füllen? Java Basics - Anfänger-Themen 2
O must be an array type (String array füllen) Java Basics - Anfänger-Themen 7
C Array füllen Java Basics - Anfänger-Themen 5
P Array füllen & sortieren Java Basics - Anfänger-Themen 3
M Array mit Werten füllen und sortieren Java Basics - Anfänger-Themen 2
C Byte-Array mit Dateiinhalt füllen Java Basics - Anfänger-Themen 7
M Array mit Alphabet füllen Java Basics - Anfänger-Themen 4
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben