Array einer eigenen Klasse erstellen.

Status
Nicht offen für weitere Antworten.

flipflop

Mitglied
Hallo,

ich fürchte ich habe wirklich eine peinlich einfachste Frage, bin jedoch absoluter Anfänger und traue mich nun mal zu fragen.

Und zwar habe ich eine eigene Klasse "node" erstellt, mit der ich Knoten eines Graphen repräsentieren möchte.
Nun muss ich aus einer Datei einen Graphen einlesen, der natürlich aus vielen Knoten besteht. Um dies zu speichern würde ich gerne mit einem Array arbeiten. Diese Array erstelle ich nun mit

Code:
    node[] nodes = new node[gsize];

wobei gsize die Größe des Graphen ist. Will ich nun zum Beispiel mit

Code:
    nodes[2].getcolor();

die Färbung eines Knoten erfragen bekomme ich immer

Exception in thread "main" java.lang.NullPointerException
at main.main(main.java:17)

Der Konstruktor eines Knoten "node" sieht wie folgt aus:

Code:
    public node(){
    	this.owner=0;
    	this.color=0;
    };


Leider habe ich keine Idee wieso er angeblich auf einen Null Bereich zugreift. Entschuldigt bitte diese dumme Frage, aber ihr wisst sicher sofort wo das Problem liegt.

Vielen Dank!!!
 

Marcel_Handball

Bekanntes Mitglied
Ich habe so etwas selbst noch nie versucht, aber:

Code:
Node eins = new Node();
Node[] nodes = new Node[7];

Da fällt auf Anhieb ein Unterschied auf: Die Klammern ()
(woher soll das Programm auch wissen, welchen Konstriktor es aufrufen soll, ohne Kammern)

So sollte es funktionieren:

Code:
public class Test {

  public static void main(String[] args) {
	  Node[] nodes = new Node[]{new Node(),new Node()}; 
	  nodes[1].getColor();
  }

}

class Node{
	int owner;
	int color;
	
	public Node(){
	   owner=5;
	   color=5;
	}
	
	void getColor(){
		System.out.println("hh");
	}
}
 

flipflop

Mitglied
Danke erstmal für die Hilfe.

De facto funktioniert es tatsächlich so. Allerdings wenn ich

Code:
     Node[] nodes = new Node[]{new Node(),new Node()};
     nodes[1].getColor();

benutze, initialisiere ich in diesem Fall genau zwei neue Knoten, jedoch müsste ich genau gsize viele neue Knoten initialisieren. Kann ich das noch irgendwie mit einem Trick umgehen?

Ich weiß leider erst durch die Datei den Wert an Knoten den ich brauche. :-(
 

Marcel_Handball

Bekanntes Mitglied
geht auch so:

Code:
public static void main(String[] args) {
	  Node[] nodes = new Node[7];
	  for(int i=0; i<nodes.length; i++){
		  nodes[i] = new Node();
	  }
	  
	  nodes[1].getColor();
}

(bzw. für die 7 halt die Variable einsetzen)
--------------------------------------------------------------------------
Die einzelnen Felder müssen halt noch initialisiert werden
Das ist genauso, als wenn du ein int Array erzeugst mit: int [] name = new int[5];
und dann auf den 2. Inhalt zugreifen möchtest, (das geht zwar, weil Java automatisch die leeren Felder mit
0 initialisiert, doch bei anderen Typen geht es nicht, z.B. bei deiner Klasse)

Edit: noch ein Hinweis zu

ich eine eigene Klasse "node" erstellt
Klassen immer groß schreiben!!
 

flipflop

Mitglied
Super, vielen Dank.. das löst genau das Problem!

Noch schnell eine weitere Sache, vielleicht kannst du auch damit was anfangen, es tut mir echt leid, mit solchen Fragen hier anzukommen:

Code:
    while ((line=f.readLine())!=null) {
    	if (line==".") System.out.println(1);

Somit möchte ich in meiner Datei den . als Trennzeichen nutzen, jedoch bekomme ich niemals eine 1 ausgegeben, das bedeutet irgendwie erkennt er meinen Vergleich nicht?!?!?!?
 

Fatal Error

Bekanntes Mitglied
Strings vergleicht man mit .equals(Object o); da Strings Objekte sind!

bei dir wäre das:
Code:
while ((line=f.readLine())!=null) {
       if (line.equals(".")) System.out.println(1);
 

Marcel_Handball

Bekanntes Mitglied
oder:

Code:
import java.io.*;

public class AnzahlDerZeichen{

   public static void main(String args[]) throws IOException{
     String dateiname="datei.txt";   
     BufferedReader ein = new BufferedReader(new FileReader(dateiname));
     int zeichenanzahl=0;
        
     int chValue; // Speichert das aktuell gelesene Zeichen als int.
                  // Braucht man um auf -1 abfragen zu können!
     char ch;     // Speichert das aktuell gelesene Zeichen als char. 
        
     while((chValue = ein.read()) != -1){
         ch = (char) chValue; 
         if(chValue=='.'){zeichenanzahl++;}
     }
        
     ein.close();
     System.out.println(""+zeichenanzahl);
  } 
}

Dieser Programm zählt die Punkte in einem txt Dokument.

Die Variable "line" ist doch ein String -Objekt. Daher würde die Lösung über mir nur funktionieren, wenn in der ganzen
Zeile nur ein Punkt steht, wenn es aber zwischen zwei Worten als Trennsymbol stehen soll, hilft dir dies bestimmt weiter

Edit: oder wenn deine Datei folgenden Inhalt hat: "name.name" und du willst nun die beiden "Namen" in zwei einzelnen
Variablen speichern, dann mach es doch einfach so. Du liest die ganze Zeile aus, speicherst sie in einem String und
zerlegst diesen (der Punkt als Trennzeichen):

Code:
String line="name.name";
String beideDaten[]= line.split(".");
 

Marco13

Top Contributor
Ich würde dir empfehlen, statt des Arrays eine ArrayList zu verwenden. Da kann man beliebige viele Knoten reintun, und weiß immer, wie viele gerade drin sind.
 

flipflop

Mitglied
Hallo Leute, ich danke euch für die Ratschläge... vorerst funktioniert das alles wunderbar, nochmals danke an alle!!!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Array einer eigenen Klasse sortieren Java Basics - Anfänger-Themen 11
A Mehrere Instanzen einer eigenen Klasse in einem Array Java Basics - Anfänger-Themen 5
F Array einer eigenen Klasse Java Basics - Anfänger-Themen 5
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
D EinMalEins mithilfe einer for-Schleife und Array Java Basics - Anfänger-Themen 1
A Ein Array bearbeiten und in einer anderen Methode nutzen Java Basics - Anfänger-Themen 6
I Array einer Methode wiedergeben Java Basics - Anfänger-Themen 2
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
K Klasse mit einer Array-Eigenschaft Java Basics - Anfänger-Themen 4
M BlueJ - Array als Paramter einer Methode eingeben Java Basics - Anfänger-Themen 12
F Auf Array einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 4
K Klassen Array einer anderen Klasse ... Java Basics - Anfänger-Themen 21
J Array Objekte einer Klasse zuordnen Java Basics - Anfänger-Themen 15
E Array-list mit einer bestimmten Länge Java Basics - Anfänger-Themen 17
S Auf Array einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 13
C In einer Methode einen Array zurückgeben Java Basics - Anfänger-Themen 2
C Zeilen aus einer Datei in Array speichern Java Basics - Anfänger-Themen 4
V Erste Schritte Array.length[x] in einer Schleife - ich verstehe das nicht Java Basics - Anfänger-Themen 1
K Compiler-Fehler Durchschnitt einer Spalte in einem 2D-Array Java Basics - Anfänger-Themen 1
B Wie speicher ich die Outputs einer Methode in ein Array ein? Java Basics - Anfänger-Themen 1
J Array innerhalb einer Funktion mehrfach iniatilisieren Java Basics - Anfänger-Themen 4
S Übertragen einer Textdatei in ein 2d-Array Java Basics - Anfänger-Themen 2
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
C Array - Methode in einer anderen Aufrufen Java Basics - Anfänger-Themen 1
B Probleme beim einlesen einer short variablen für einen Array Java Basics - Anfänger-Themen 1
J Int Array und String in einer neuen Methoder übergeben Java Basics - Anfänger-Themen 7
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
E Array von Objekten einer selbst definierten Klasse mit eindeutigem Namen Java Basics - Anfänger-Themen 2
C Array aus einer Methode zurückgeben und ausgeben Java Basics - Anfänger-Themen 1
G Array aus einer Wrapperklasse? Java Basics - Anfänger-Themen 2
J Datentypen Array von einer LinkedList Java Basics - Anfänger-Themen 5
M Zugriffsproblem auf (zweidimensionales) Array in einer ArrayList Java Basics - Anfänger-Themen 15
F Adressverwaltungsprogramm: Objekte einer Klasse in Array Java Basics - Anfänger-Themen 6
T Methoden in einer array werte vergleichen Java Basics - Anfänger-Themen 6
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
F Array als Instanz einer Klasse Java Basics - Anfänger-Themen 8
C Referenzen zu Instanzen einer Klasse im Array Java Basics - Anfänger-Themen 8
P int Array direkt einer Funktion übergeben Java Basics - Anfänger-Themen 3
T Array in einer Arraylist Java Basics - Anfänger-Themen 28
M Methoden Daten aus einer SQL-Abfrage in eine mehrdimensionales Array einlesen Java Basics - Anfänger-Themen 7
L Methoden Auf statische Methode einer anderen Klasse zugreifen, die Array zurückgibt Java Basics - Anfänger-Themen 3
A Ein Array aus einer Klasse wird nicht sauber abgefüllt Java Basics - Anfänger-Themen 4
W Objekte in einer Array sortieren Java Basics - Anfänger-Themen 3
c_sidi90 Array in einer txt Datei speichern Java Basics - Anfänger-Themen 11
J Strings aus einer Datei in 2D Array schreiben Java Basics - Anfänger-Themen 3
E Einlesen einer int und speichern in einem Array Java Basics - Anfänger-Themen 7
T Array als Rückgabewert einer Methode Java Basics - Anfänger-Themen 3
Z Array mit daten einer datenbankbefüllen und dies an eine tabelle geben Java Basics - Anfänger-Themen 6
Nadja 2-Dim Array mit einer Zeile int und einer double Java Basics - Anfänger-Themen 4
P Array in einer Methode verändern Java Basics - Anfänger-Themen 6
A String[] array in vertikale Spalte einer JTable ausgeben? Java Basics - Anfänger-Themen 8
M probleme mit array (als attribut einer klasse) Java Basics - Anfänger-Themen 2
J Array in einer Liste Java Basics - Anfänger-Themen 2
B Buttons in einer Array Java Basics - Anfänger-Themen 6
E Inhalt einer array zelle prüfen? Java Basics - Anfänger-Themen 2
D Auf Array von einer Methode zugreifen Java Basics - Anfänger-Themen 2
G Definition einer Array Java Basics - Anfänger-Themen 3
G Array in main Methode bilden und in einer Methode nutzen? Java Basics - Anfänger-Themen 11
S Einlesen einer Datei und ins Array speichern Java Basics - Anfänger-Themen 11
G Inhalt einer Textdatei in ein Array einlesen Java Basics - Anfänger-Themen 2
A Länge einer Dimension in 2-dimensionalem Array ? Java Basics - Anfänger-Themen 2
M Aus einer Klasse auf Array einer anderen zugreifen. WIE? Java Basics - Anfänger-Themen 4
C Inhalt aus einer Array in eine andere Array kopieren Java Basics - Anfänger-Themen 2
A Zeichenkette teilen mit Substring oder Char Array Java Basics - Anfänger-Themen 14
A 6. Element aus einem Array zurückgeben Java Basics - Anfänger-Themen 1
A Was bedeutet bei einem Array "int a [MAX][MAX];", Java Basics - Anfänger-Themen 7
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

Ähnliche Java Themen

Neue Themen


Oben