Ergebnis 1 bis 8 von 8

Thema: Arrays und so

  1. #1

    Users Awaiting Email Confirmation

    Arrays und so

    Hey ihr.
    In der Schule habe ich im Moment ne Aufgabe, nen IBAN Rechner in Java zu programmieren.
    Dazu möchte ich ein en Array verwenden, in dem alle LänderCodes(also "DE", "GB", "PL" etc.) und deren Wert ("DE" = 1314) drin gespeichert sind.

    Ich hab eine Choice, wo man z.b. "DE" auswählen soll.

    Ich habs einfach nicht so mit eigenen Datentypen erstellen (weil wir's so gut wie nie machen).

    Jeder Index beim Array muss also 2 Werte z.b. DE und 1314 haben.
    Hat jemand nen Plan? :P

  2. #2
    Würden sich da nicht eher Hashmaps anbieten, anstatt Arrays?

  3. #3
    Ja also eine HashMap oder ein enum. Da ländercodes ja ziemlich statisch sind bietet sich hier sowas auch an.

  4. #4
    Wo genau brauchst du denn Hilfe bei? Bei der Deklaration des Arrays?
    Wenn du einfach ein mehrdimensionales Array willst:

    Code:
     String[][] arr = new String[10][2];
    arr[0][0] = "DE";
    arr[0][1] = "100";
           
    arr[1][0] = "EN";
    arr[1][1] = "200";
    Dann wäre das ein Beispiel dafür.

  5. #5

    Users Awaiting Email Confirmation

    habt ihr dazu ein einfaches Beispiel? N00b und so~

  6. #6
    Code:
    Map<String,Integer> data = new HashMap<String,Integer>();
    data.put("DE", 100);
    Bitte. Ich rate dir nur davon ab Datenstrukturen zu benutzen die dir nicht vollends klar sind.

  7. #7

    Users Awaiting Email Confirmation

    Vielen Dank.
    Hab ein weiteres Problem:

    Zitat Zitat
    private void addCountries()
    {
    int i = 0;
    do
    {
    try
    {
    CountryCode.addItem(CountryCodeList[i][0]);
    i = i + 1;
    } catch (Exception ex)
    {
    }
    } while (i == CountryCodeList.length);
    }
    Er fügt nur mein "DE" in die JComboBox ein, wenn ich ne Schleife mache.
    Wenn ich sie einzeln, also mit
    Zitat Zitat
    CountryCode.addItem(CountryCodeList[1][0]);
    CountryCode.addItem(CountryCodeList[2][0]);
    Etc.
    funktioniert es.

    Yes. Ich bin bescheuert.
    muss natürlich != length.

    Geändert von Engel der Furcht (27.02.2013 um 21:31 Uhr)

  8. #8
    Für so was gibt es die HashMaps. Arrays sind da sehr suboptimal, aufgrund von Inkonsistenzen, und statischen Speicher. Das Array auch nicht wirklich sprechend.

    Wieso legst du einen try-catch-Block um die addItem()-Methode? Diese Methode schmeißt eh keine Exception.
    Eine Do-While-Schleife brauchst du hier auch nicht. Do-While-Schleifen findet man sowieso recht selten.
    Java besitzt auch foreach-Schleifen (auch wenn sie nur als for-Schleife deklariert werden):

    Code:
    String[][] countryCodeList = new String[][]
        {
              {"DE", "100"}
            , {"EN", "200"}
        };
    
    for (String[] countryCode : countryCodeList)
    {
        if (countryCode[0] != null)
        {
            System.out.println(countryCode[0]);
        }
    }
    edit: Eine andere Möglichkeit wäre eine eigene Klasse für die Daten zu definieren:
    Code:
    public class CountryCode
    {
        private final String country;
        private final String value;
        
        public CountryCode(String country, String value)
        {
            this.country = country;
            this.value = value;
        }
        
        public String getCountry()
        {
            return country;
        }
        public String getValue()
        {
            return value;
        }
    }
    Code:
            CountryCode[] countryCodeList = new  CountryCode[]
                    {
                          new CountryCode("DE", "100")
                        , new CountryCode("EN", "200")
                    };
                    
            for (CountryCode countryCode : countryCodeList)
            {
                System.out.println(countryCode.getCountry());
            }

    Geändert von Whiz-zarD (27.02.2013 um 22:11 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •