Records (Unterschiedliche Daten zusammenfassen)

melmager

Erfahrenes Mitglied
In Pascal sind sie ja selbstverständlich die Records:
eine Zusammenfassung von mehrere Daten, die auch verschiedene Datentypen sein können.
Nach den Motto wir bekommen ein Errorcode als Zahl und wollen ein Fehlertext zuordnen.

in Java bilde ich sowas normalerweise mit einer Classe nach die keine Methoden hat:

Code:
class Fehlermeldungen {
 int code;
 string meldung;
}
dann kann man z.B mit einem Vector eine Möglichkeit schaffen, um eine Verknüpfung zwischen Zahl und Text zu schaffen.

oder was ich auch schon gemacht habe ein String erstellen und mit Token arbeiten:
string meldungen ="11|Geplatzt|12|Rauch steigt auf";

und wie löst ihr sowas ?
 

Thomas Darimont

Erfahrenes Mitglied
Hallo!

Zum Beispiel so:
Code:
package de.tutorials;

import java.util.HashMap;
import java.util.Map;

public class MapExalpe {

	public static void main(String[] args) {
		Map map = new HashMap();
		map.put(new Integer(0),"Message0");
		map.put(new Integer(1),"Message1");
		map.put(new Integer(2),"Message2");
		map.put(new Integer(3),"Message3");
		
		System.out.println(map.get(new Integer(2)));
	}
}

Gruß Tom
 

melmager

Erfahrenes Mitglied
das geht aber leider nur bei zwei Werten :-( sobald da mehr zusammenkommt
sagen wir mal ein Kommentareintrag fällt die Version leider raus

also doch über die Classe gehen als Datenspeicher
 

Thomas Darimont

Erfahrenes Mitglied
Hallo!

Code:
/*
 * Created on 04.11.2004
 */
package de.tutorials;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author Darimont
 *  
 */
public class Test47 {

    public static void main(String[] args) {
        Map map = new HashMap();
        map.put(new Integer(0), new Object[] { "A0", "B0", "C0" });
        map.put(new Integer(1), new Object[] { "A1", "B1", "C1","D1" });
        map.put(new Integer(2), new Object[] { "A2", "B2", "C2","D2","E2" });
        map.put(new Integer(3), new Object[] { "A3", "B3" });

        List list = Arrays.asList((Object[]) map.get(new Integer(2)));
        System.out.println(list);
    }
}

Du könntest natürlich auch eine beliebige Collection als "val" bei map.put(key,val) übergeben...

Gruß Tom