<JAVA>: Frage zu Array-Definition

  • Hey Leute,

    ich möchte einen Array definieren, der aber mehr Elemente als im int-Zahlenbereich erlaubt erfordert. Gibt es eine Möglichekit, die Größe eines Arrays über eine long-Variable (oder igendeinen anderen Datentyp größer gleich 999999999) festzulegen?

    Danke für eure Inputs,
    cheers,
    alex

  • Ab Java 7 ist es zumindest im Plan das das geht. Halte ich persönlich für schwachsinnig. Arrays liegen im Hauptspeicher und ein Byte Array mit den vollen signed Int32 Bereich hätte ca 2GB...

    Auf jeden Fall gehts im Moment nicht, du wirst dir mit einem Stream, Datenbank,etc helfen müssen.

  • Ein Array dieser Größe deutet eher darauf hin, dass es ein Problem im Programm(-Design) gibt. Immerhin ist das Array in einer Größe, die in etwa der heute üblichen Hauptspeichergröße entspricht.
    1 Mrd. Elemente ist mit int ja noch möglich, wie viele sollen es denn maximal sein?
    Bei welchem Element-Datentyp? Ab 3 Mrd. Elementen (byte) oder < 1 Mrd. Elementen (int) wird man wohl ohne 64-Bit Betriebssystem schon mal sowieso nicht mehr auskommen und 4GB Hauptspeicher sind dann wohl auch schon etwas knapp bemessen.
    Hinzu kommt, dass man bei der JVM wohl erst mal die max. Heapgröße raufsetzen muss, um überhaupt so viel Speicher zur Verfügung zu haben.

    Also ich würde generell mal empfehlen die Daten in eine Datenbank/auf die Festplatte auszulagern oder eine bessere Datenstruktur zu überlegen. Kommt ganz auf die Problemstellung an. Darf man denn da näheres wissen?

    2 Mal editiert, zuletzt von Ramses13 (24. Oktober 2010 um 14:30)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!