Rafael: Java - Arrays mit dynamischer Zahl von Elementen

Hallo zusammen,
vielleicht eine Anfängerfrage, aber in den beiden Tutorien, die ich lese, steht leider kein Wort zum Thema geschrieben.

Folgendes Problem: Ich bin Perl/PHP-Umsteiger und ein sehr pragmatischer Programmierer. Die Umgewöhnung auf Java klappt ganz gut, nur konnte ich bisher immer einem Array weitere Elemente hinzufügen, je nachdem wie viele ich eben brauchte.

Nun möchte ich eine Liste mit Stream-Adressen für einen Radiokanal verwalten und diese Zeilen für die verschiedenen Streamadressen jeweils in einem Array-Element unterbringen. Die Tutorien sagen nun immer ganz selbstverständlich, dass ich dem Array bereits beim initialisieren eine bestimmte Zeilenzahl zuweisen soll, aber ich weiß ja nicht im voraus, ob ein Radiosender 100 oder nur einen Stream besitzt.

Eventuell habe ich auch noch nicht nach den richtigen Begriffen gegoogelt? Für einen Tipp wäre ich sehr dankbar, bzw. für einen Ansatz wie derartige Probleme üblicherweise gelöst werden, so unüblich ist es ja eigentlich nicht.
Danke vielmals! Rafael

  1. Hallo,

    Folgendes Problem: Ich bin Perl/PHP-Umsteiger und ein sehr pragmatischer Programmierer. Die Umgewöhnung auf Java klappt ganz gut, nur konnte ich bisher immer einem Array weitere Elemente hinzufügen, je nachdem wie viele ich eben brauchte.

    Du suchst Vector, ArrayList oder LinkedList, je nachdem wie die konkreten
    Anforderungen sind. Da du allem Anschein nach ja selbständig in der Lage bist,
    dir Wissen anzueigenen, sollten diese 3 Begriffe für dich einen guten Einstieg
    zum Googlen sein. Ich denke, dass es gute Beschreibungen der genannten Klassen
    gibt.

    Gruß
    Slyh

    1. Wunderbar. Genau, was ich suchte. Dankeschön!

  2. Hallo Rafael,

    Arrays in Scriptsprachen sind intern kompliziertere Datenstrukturen und nicht mit den Arrays aus "kompilierten" Sprachen zu vergleichen.
    Normale Arrays sind im wesentlichen ein zusammenhängender Speicherbereich, in dem mehrere Elemente des gleichen Typs abgelegt sind. Dadurch ist der Zugriff auf die Elemente sehr effizient. Diese Struktur kann man aber prinzipiell nicht vergrößern (zumindest nicht in Java, in anderen Sprachen könnte man evtl. einen folgenden Speicherbereich reservieren, falls dieser frei ist).
    Es gibt in Java aber Listen, die das können, was Du willst. Geeignet ist meistens die Klasse java.util.ArrayList, die eine Liste auf Basis eines Arrays implementiert und die Einträge bei Bedarf in größere oder kleinere Arrays umkopiert.

    Grüße

    Daniel