johnyc Δημοσ. 4 Ιουνίου 2007 Δημοσ. 4 Ιουνίου 2007 Θα ήθελα να κτρατάω την αντιστοιχία String(key)->Int(value). Όμως μετά θα ήθελα να μπορώ να ταξινομήσω το map με βάσει τα values. Γίνεται; Αν όχι πως αλλιώς μπορώ να το κάνω;
Dikemou Δημοσ. 4 Ιουνίου 2007 Δημοσ. 4 Ιουνίου 2007 Μπορείς να ταξινομήσεις το Collection που επιστρέφει η values(), καλώντας τη sort().
johnyc Δημοσ. 4 Ιουνίου 2007 Μέλος Δημοσ. 4 Ιουνίου 2007 Ναι αλλά πως θα ξέρω το κάθε value σε πιο key αντιστοιχει;
Dikemou Δημοσ. 4 Ιουνίου 2007 Δημοσ. 4 Ιουνίου 2007 Κάτι τέτοιο ίσως: > private Object getKey(Object value){ Iterator<Object> it = myMap.keySet().iterator; while(it.hasNext()){ Object o = myMap.get(it.next()); if (o == value) return o; } return null; } Σκέψου πάντως μήπως να φτιάξεις το Map σου ως: Int(value)->String(key)
Moderators Praetorian Δημοσ. 4 Ιουνίου 2007 Moderators Δημοσ. 4 Ιουνίου 2007 Αυτό τι ακριβώς κάνει; Κάτι τέτοιο ίσως: > private Object getKey(Object value){ Iterator<Object> it = myMap.keySet().iterator; while(it.hasNext()){ Object o = myMap.get(it.next()); if (o == value) return o; } return null; } Μάλλον αυτό θα εννοούσες: > private Object getKey(Object value){ Iterator<Object> it = myMap.keySet().iterator; while(it.hasNext()){ Object o = it.next(); if (myMap.get(o) == value) return o; } return null; } Αν και η αντιστροφή του map δεν θα σου δώσει πάντα το σωστο κλειδί (αν πχ δυο κλειδιά έχουν το ίδιο value)
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.