tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
1148
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von MasterEvil
    MasterEvil MasterEvil ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Ort
    Templin
    Beiträge
    137
    Hiho, ich probiere schon die ganze Zeit mit ArrayLists und HashSets etc rum aber ich bekomm nicht das hin was ich brauche.

    gewöhnliches Beispiel:

    class Person {
    private string Name;
    }

    class Personen{
    Liste oder Collection von Person

    Liste[1].Name = "blub";
    }

    Das Problem ist, wenn ich eine Liste nehme kann ich auch irgendwelche anderen Objekte hinzufügen, als Rückgabe hab ich dann auch kein Person-Objekt was ich direkt über einen Index ansprechen kann.
    Was kann man denn dafür benutzen? Solche Objektlisten braucht man doch ständig da muss es doch schon etwas bracuhbares für geben oder?


    [EDIT]
    Vieleicht noch mein aktueller Versuch zur besseren Verständlichkeit, das mit dem Cast in Artikel stört mich am meisten.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    import java.util.HashSet;
     
    public class ArtikelListe extends HashSet {
        
        private static final long serialVersionUID = 1L;
     
        public void addArtikel(artikel m_Artikel) {
            this.add(m_Artikel);
        }
        
        public artikel getArtikelByNumber(String m_number) {
            artikel foundArtikel = null;
            
            while(this.iterator().hasNext()) {
                foundArtikel = (artikel)this.iterator().next();
                if(foundArtikel.getArtikelnummer() == m_number) break;
                else foundArtikel = null;
            }
            
            return foundArtikel;
            
        }
        
        public void test() {
            ArtikelListe testblub = new ArtikelListe();
            
            artikel blub = testblub.getArtikelByNumber("AB-12");
            blub.getAnbindungsnummer();
        }
     
    }
    Geändert von MasterEvil (05.12.05 um 12:07 Uhr)
     

  2. #2
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Zitat Zitat von MasterEvil

    gewöhnliches Beispiel:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    class Person {
       private string Name;
    }
     
    class Personen{
       Liste oder Collection von Person 
     
       Liste[1].Name = "blub";
    }
    Das Problem ist, wenn ich eine Liste nehme kann ich auch irgendwelche anderen Objekte hinzufügen, als Rückgabe hab ich dann auch kein Person-Objekt was ich direkt über einen Index ansprechen kann.
    Was kann man denn dafür benutzen? Solche Objektlisten braucht man doch ständig da muss es doch schon etwas bracuhbares für geben oder?
    Moin,
    zunächst einmal:
    Sicher kannst Du einer Liste beliebige Objekte hinzufügen. Es liegt in Deiner Verantwortung, sie dann wieder richtig auszulesen (Stichwort casten) oder von vornherein nur Objekte gleichen Typs hinzuzufügen.
    Weiterhin meine ich, dass in Java 5 letzteres sichergestellt werden kann durch

    ArrayList<Person> alPersonen = new ArrayList();

    oder

    ArrayList<Person> alPersonen = new ArrayList()<Person>;

    oder so ähnlich, musst mal in der API schauen. Dann ist auch beim Auslesen kein casten mehr nötig afaik.
     

  3. #3
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Besser:
    Code :
    1
    
     List<Person> persons = new ArrayList<Person>();


    Gruss Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  4. #4
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    Jep, die Lösung von Thomas würde ich auch hernehmen. Mit Templates wird nämlich nur dieser vorgegbene Typ, in deinem Fall Person, zurückgeliefert. Hinzukommt, dass auch nur dieser Typ in die Liste eingefügt werden kann. Mit dieser Lösung ersparst du dir einen Haufen Arbeit

    Gruß
    TOM
     
    alles Gute kommt von ...

  5. #5
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Zitat Zitat von Thomas Darimont
    Hallo!

    Besser:
    Code :
    1
    
     List<Person> persons = new ArrayList<Person>();


    Gruss Tom
    Jaja, elender <self-censored>
    Ich/Wir nutze(n) noch kein Java 5, deshalb bin ich mit der Syntax nicht sonderlich vertraut.
    Ob List oder ArrayList dürfte in diesem Fall keinen großen Unterschied ausmachen, außer dass man sich damit an die Empfehlungen für effektive Java-Programmierung hält und gewöhnt.
     

  6. #6
    Avatar von MasterEvil
    MasterEvil MasterEvil ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Ort
    Templin
    Beiträge
    137
    Das ganze sieht schonmal super aus, ich bekomme aber noch einen Fehler bei der Klammer-Auf ganz am Ende.
    Syntaxerror on token "(", Expression expected after this token

    Code :
    1
    2
    3
    4
    5
    6
    
    import java.util.ArrayList;
    import java.util.List;
     
    public class PersonenListe {
        private List<Person> Personen = new ArrayList[]<Person>[COLOR=Red]([/COLOR]); 
    }

    Also irgendwas wird erwartet, ich hab aber bei meiner Person Klasse keinen Konstruktor oder sonstige Übergabewert?

    Sorry, Eclipse hatte wohl noch irgendwo ne Referenz oder so gespeichert, hab die Klasse komplett neu erstellt und jetzt geht es einwandfrei. Besten Dank für eure Hilfe!
    Geändert von MasterEvil (05.12.05 um 16:37 Uhr)
     

  7. #7
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    hi!

    Code :
    1
    
    private List<Person> Personen = new ArrayList[]<Person>();

    geht das mit den [] wirklich nach der ArrayList? Interessiert mich nur, ich hab selbst noch nicht mit Java Templates gearbeitet, aber das kommt mir optisch einfach komisch vor

    Gruß
    TOM
     
    alles Gute kommt von ...

Ähnliche Themen

  1. Struts2: von JSP auf eine Objekt-Liste zugreifen
    Von Flo[H] im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 09.12.08, 14:07
  2. Feststellen ob ein Objekt erstellt wurde
    Von Divi im Forum .NET Windows Forms
    Antworten: 4
    Letzter Beitrag: 27.05.06, 18:44
  3. objekt erstellt mit javascript, problem :(
    Von daggit im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 14.01.05, 16:40
  4. Objekt mit Boolchen erstellt, Rechner geht dann in Knie !
    Von Nightcrawler im Forum Cinema 4D
    Antworten: 15
    Letzter Beitrag: 26.09.04, 17:55
  5. CDONTS Objekt kann nicht erstellt werden
    Von KikiDieNieWasWeiss im Forum ASP
    Antworten: 1
    Letzter Beitrag: 20.04.04, 11:24