Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

JAVA: Statische generische Methode
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> JAVA: Statische generische Methode
 
Autor Nachricht
Fux84
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 01.06.2007
Beiträge: 58

BeitragVerfasst am: 18 Jan 2009 - 17:14:01    Titel: JAVA: Statische generische Methode

Hallo, ich habe mir eine Methode geschrieben, die eine neue Map berechnen soll, in der nur Einträge vorkommen, die in den beiden übergebenen Maps gleich sind.

Code:
    public static <K, V> Map<K, V> mapWithSameEntries(Map<K, V> m1, Map<K, V> m2) {
        Map<K, V> result = new HashMap<K, V>();
        Set<K> keys1 = new HashSet<K>();

        for (K key1 : keys1) {

            if (m2.containsKey(key1)) {
                if (m1.get(key1) == m2.get(key1)) {
                    result.put(key1, m1.get(key1));
                }
            }

        }

        return result;
    }


In meiner main-Methode habe ich mir wie folgt 2 Maps definiert und die Methode aufgerufen:


Code:

        Map<String, Integer> m = new HashMap<String, Integer>();
        Map<String, Integer> m2 = new HashMap<String, Integer>();
        m.put("test",1);
        m2.put("test",1);
        Map<String, Integer> result = Collections_Uebungen.<String, Integer>mapWithSameEntries(m, m2);   
        System.out.println(result);



Eigentlich sollte ich jetzt eine Map mit genau dem Inhalt wiederbekommen. Leider kriege ich nur die leere Menge zurück. Hab kein Schimmer warum. Vielleicht könnt Ihr mir ja helfen.

Danke und viele Grüße
Smutje
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 19.07.2008
Beiträge: 3004
Wohnort: Gießen

BeitragVerfasst am: 18 Jan 2009 - 17:57:31    Titel:

ersetz das == mal durch einen Aufruf von equals. (Also sowas wie
Code:
if (m1.get(key1).equals(m2.get(key1)))

) Hilft das?
Fux84
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 01.06.2007
Beiträge: 58

BeitragVerfasst am: 18 Jan 2009 - 18:03:37    Titel:

Hab den Fehler selbst gefunden.

Code:
Set<K> keys1 = m1.keySet();


Hatte vergessen die Keys des ersten Argumentes zu übergeben
Armin Gibbs
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 06.02.2008
Beiträge: 992

BeitragVerfasst am: 18 Jan 2009 - 18:08:12    Titel:

Du solltest trotzdem drauf achten, ob es dir um dieselben Einträge geht oder um die gleichen.
Fux84
Junior Member
Benutzer-Profile anzeigen
Junior Member


Anmeldungsdatum: 01.06.2007
Beiträge: 58

BeitragVerfasst am: 18 Jan 2009 - 18:24:22    Titel:

Hm, also muss ich dann die equals -Methode nehmen, wenn es mir nur um die Gleichheit der Objekte geh!?
Smutje
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 19.07.2008
Beiträge: 3004
Wohnort: Gießen

BeitragVerfasst am: 18 Jan 2009 - 18:33:22    Titel:

equals überprüft bei Objekten die Werte, == bei Objekten die Speicheradresse.
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> JAVA: Statische generische Methode
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum