nik324 Δημοσ. 29 Οκτωβρίου 2013 Δημοσ. 29 Οκτωβρίου 2013 import java.util.LinkedList; class LinkedListDemo { class Node { private int x; private int y; public Node(int x, int y) { this.x = x; this.y = y; } public Node Node(int i, int j) { // TODO Auto-generated method stub return null; } } public static void main(String args[]) { LinkedList<Node> ll = new LinkedList<Node>(); Node n = new Node(0, 0); ll.add ( n.Node(0, 0)); ll.add(new Node(0, 0)); ll.add(new Node(0, 0)); ll.add(new Node(0, 0)); } } Που ειναι το προβλημα σε αυτον τον κωδικα;
Technology fan Δημοσ. 29 Οκτωβρίου 2013 Δημοσ. 29 Οκτωβρίου 2013 Αυτό μάλλον... public Node Node(int i, int j) { // TODO Auto-generated method stub return null; }
ALLisCHAOS Δημοσ. 29 Οκτωβρίου 2013 Δημοσ. 29 Οκτωβρίου 2013 μαλλν δν ειναι εκει το πρόβλημα (που λεει ο technology fan) αλλά δεν είναι κ το καλύτερο νομίζω να έχει μια μέθοδος το όνομα του δομητή...αλλαξέτο..βασικά γιατί κάνεις μια κλάση μέσα στην άλλη??
nik324 Δημοσ. 29 Οκτωβρίου 2013 Μέλος Δημοσ. 29 Οκτωβρίου 2013 θελω να φτιαξω μια λιστα και κανοντας add να μπορω να εισαγω 2 στοιχεια
ALLisCHAOS Δημοσ. 29 Οκτωβρίου 2013 Δημοσ. 29 Οκτωβρίου 2013 γιατι αν έχεις μόνο την node και καθόλου την LinkedListDemo δεν δουλεύει?? δοκιμασέτο κ αν δεν... περίμενε τους πιο έμπειρους να απαντήσουν
Titan91 Δημοσ. 29 Οκτωβρίου 2013 Δημοσ. 29 Οκτωβρίου 2013 class LinkedListDemo { static class Node { .............. } ............... } Κάθε κλάση που γράφουμε μέσα σε μία άλλη κλάση είναι nested. Υπάρχουν δύο ειδών nested κλάσεις. Σαν class Node είναι non-static nested class (inner class), δηλαδή κάθε αντικείμενο τύπου Node σχετίζεται με αντικείμενο τύπου LinkedListDemo. Για αυτό δεν μπορούσες να δημιουργήσεις αντικείμενα τύπου Node. Ο κώδικας έπρεπε να είναι κάπως έτσι public static void main(String args[]) { LinkedList<Node> ll = new LinkedList<Node>(); LinkedListDemo l = new LinkedListDemo(); ll.add (l.new Node(0,0)); }Σαν static class Node είναι static nested class, δηλαδή δεν χρειάζεσαι ένα αντικείμενο τύπου LinkedListDemo για να δημιουργήσεις αντικείμενα τύπου Node.
ZAKKWYLDE Δημοσ. 30 Οκτωβρίου 2013 Δημοσ. 30 Οκτωβρίου 2013 Η προσέγγισή σου είναι λανθασμένη. Θέλεις ουσιαστικά ένα Wrapper class το οποίο να κρατάει 2 τιμές με όνομα node. Δεν υπάρχει κανένας απολύτως λόγος να βρίσκεται nested σε μια κλάση LinkedListDemo η οποία μάλιστα είναι η test class σου. Θα κάνεις απλά το εξής: public class Node { private int x; private int y; public Node(int x, int y) { this.x = x; this.y = y; } //public getters, setters } Σε άλλο αρχείο: public static void main(String args[]) { LinkedList<Node> ll = new LinkedList<Node>(); ll.add (new Node(0,0)); } Θα μπορούσες ενδεχομένως να την έχεις ως outer class στο ίδιο αρχείο (δηλαδή class σκέτο), αλλά δεν είναι κάτι που συνηθίζεται. Το method Node κάντο με μικρά "node"..είναι απο τα βασικά Java conventions...to βλέπει κάποιος και νομίζει ότι προσπαθείς να φτιάξεις constructor. Αν και δεν καταλαβαίνω τη προσπαθείς να κάνεις με το return null;
tr3quart1sta Δημοσ. 30 Οκτωβρίου 2013 Δημοσ. 30 Οκτωβρίου 2013 χρειαζεσαι και ενα private node που θα "δειχνει" στο επομενο node (και το τελευταιο θα δειχνει null) public class Node { private int x; private int y; private Node next; // <------------- public Node(int x, int y) { this.x = x; this.y = y; } //public getters, setters }
acid18 Δημοσ. 30 Οκτωβρίου 2013 Δημοσ. 30 Οκτωβρίου 2013 χρειαζεσαι και ενα private node που θα "δειχνει" στο επομενο node (και το τελευταιο θα δειχνει null) public class Node { private int x; private int y; private Node next; // <------------- public Node(int x, int y) { this.x = x; this.y = y; } //public getters, setters } Αν και δεν ξέρω από Java αλλα πιστευω κάνεις λάθος. Υπάρχει ήδη collections LinkedList<τύπος> απλά στο τύπος βάζεις την κλάση σου. Ο τρόπος που με το next χρησιμοποιήται στη c για να δείξει το επόμενο. Εκτός και αν κάνω κάπου λάθος
nilosgr Δημοσ. 30 Οκτωβρίου 2013 Δημοσ. 30 Οκτωβρίου 2013 θελω να φτιαξω μια λιστα και κανοντας add να μπορω να εισαγω 2 στοιχεια με την add() βαζεις παντα ενα στοιχειο, αν θες να βαλεις πολλα μαζι δες την addAll(). ΥΓ: Γιατι LinkedList κι οχι ArrayList ; 1
tr3quart1sta Δημοσ. 30 Οκτωβρίου 2013 Δημοσ. 30 Οκτωβρίου 2013 Αν και δεν ξέρω από Java αλλα πιστευω κάνεις λάθος. Υπάρχει ήδη collections LinkedList<τύπος> απλά στο τύπος βάζεις την κλάση σου. Ο τρόπος που με το next χρησιμοποιήται στη c για να δείξει το επόμενο. Εκτός και αν κάνω κάπου λάθος ωπα, μπερευτηκα, νομιζα εφτιαχνε δικη του linked list
ZAKKWYLDE Δημοσ. 31 Οκτωβρίου 2013 Δημοσ. 31 Οκτωβρίου 2013 ωπα, μπερευτηκα, νομιζα εφτιαχνε δικη του linked list Ναι και εγώ στην αρχή είδα Node και αυτό νόμιζα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα