Μπορεί μια μη συμβολοσειρά τιμή να χρησιμοποιηθεί ως κλειδί σε ένα αντικείμενο;
sobes.tech AI
Απάντηση από AI
Στη Java (και, ειδικότερα, στο Android), το κλειδί σε τυπικά αντικείμενα όπως το HashMap μπορεί να είναι ένα αντικείμενο οποιασδήποτε κλάσης, όχι απαραίτητα μια συμβολοσειρά. Το σημαντικό είναι ότι αυτό το αντικείμενο υλοποιεί σωστά τις μεθόδους equals() και hashCode(). Για παράδειγμα, μπορούν να χρησιμοποιηθούν Integer, Enum ή δικά σας κλάσεις ως κλειδιά.
Παράδειγμα:
Map<Integer, String> map = new HashMap<>();
map.put(1, "ένα");
map.put(2, "δύο");
String value = map.get(1); // "ένα"
Ωστόσο, αν χρησιμοποιήσετε ένα συνηθισμένο αντικείμενο χωρίς να υπερκαλύψετε τις equals() και hashCode(), η συμπεριφορά μπορεί να είναι απροσδόκητη, καθώς τα κλειδιά συγκρίνονται με αυτές τις μεθόδους. Σε αντίθεση με την JavaScript, όπου τα κλειδιά του αντικειμένου μετατρέπονται πάντα σε συμβολοσειρά, στη Java τα κλειδιά σε ένα Map μπορούν να είναι οποιαδήποτε αντικείμενα.