member_c Δημοσ. 25 Μαΐου 2010 Δημοσ. 25 Μαΐου 2010 Γεια σας. Έχω την εξής απορία: Έχω έναν κώδικα σε Java στον οποίο χρησιμοποιώ μια στοίβα η οποία έχει περιεχόμενα τύπου int. Θέλω να αποθηκεύσω σε μια μεταβλητή int το περιεχόμενο του στοιχείου που βρίσκεται στην κορυφή της στοίβας. Προσπάθησα με την μέθοδο peek() και την lastElement() του πακέτου Vector, αλλά αυτές έχουν ως επιστρεφόμενο τύπο object. Κάπου άκουσα πως αν το μετατρέψω σε Integer πρώτα, θα κάνω την δουλειά μου, αλλά δεν καταλαβαίνω πως υλοποιείται. Μήπως έχει κανείς καμιά καλή ιδέα; Ευχαριστώ!
member_c Δημοσ. 26 Μαΐου 2010 Μέλος Δημοσ. 26 Μαΐου 2010 Σ' ευχαριστώ thanos713! Αλλά το βρήκα! Τελικά έπρεπε να το μετατρέψω πρώτα σε string, μετά σε Integer και τέλος να χρησιμοποιήσω την intValue(). Αν χρειαστεί ποτέ κανείς τον κώδικα είναι ο παρακάτω: Object o = lifo.peek(); s=o.toString(); Integer x=new Integer(s); place=x.intValue(); όπου lifo η στοίβα μου, s ένα string και place μια μεταβλητή τύπου int.
ippo00 Δημοσ. 26 Μαΐου 2010 Δημοσ. 26 Μαΐου 2010 Λοιπόν καταρχάς είναι θετικό που το λύσατε αλλά η λύση είναι λάθος. Πρέπει έιτε να δοθεί τύπος στην λίστα (σωστός τρόπος, χρησιμοποιώντας generics) είτε να μετατραπούν τα δεδομένα που παίρνουμε από τι λίστα στον τύπο που θέλουμε με type conversion (που μπορεί να γίνει χωρίς strings ως ενδιάμεσους σταθμους). To type conversion είναι ο κώδικας σε σχόλια. > public class Main { public static void main(String[] args) { //Vector lifo = new Vector(); Vector<Integer> lifo = new Vector<Integer>(); int x; lifo.add(2); lifo.add(4); //x = (Integer)lifo.lastElement(); x = lifo.lastElement(); System.out.println(x); } }
member_c Δημοσ. 26 Μαΐου 2010 Μέλος Δημοσ. 26 Μαΐου 2010 Δίκιο έχεις ippo00! Σ' ευχαριστώ! Χρησιμοποίησα το type conversion γιατί με τα generics δεν έχω εξοικειωθεί ακόμα. Αλλά μήπως μπορείς να μου εξηγήσεις γιατί είναι λάθος; Από την στιγμή που έτρεχε δεν σκέφτηκα καθόλου να το ψάξω παραπέρα.. :/
ippo00 Δημοσ. 26 Μαΐου 2010 Δημοσ. 26 Μαΐου 2010 Well πρότων γιατί δεν χριάζεται να στηθεί όλο αυτό το σκήνικό με το string (γενικά είναι ταρζανία λίγο και με πολλές ταρζανιές θα γεμίσεις τον κώδικά σου με bugs) και δεύτερον απλά πρέπει να προγραμματίζεις έτσι γιατί τα αντικείμενα που θα βγάζεις από τα container σου δεν θα είναι πάντα νούμερα και string ώστε να μπορείς να τα μετατρέψεις σε string και μετά σε ότι θέλεις.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.