Datenstruktur gesucht

Status
Nicht offen für weitere Antworten.
G

Gast2

Gast
Hi,
ich habe ein kleines Problem und hoffe ihr könnt mir da ein wenig helfen.

Folgende Situation:
Ich habe ein 2D-Feld bei dem jedes Feld 2 Zustände (tod oder lebendig) annehmen kann. Ich habe es daher zuerst mit einem 2d-boolean Array versucht. Damit bekomme ich auch eigentlich alle Berechnungen hin wenn es um einen kleinen Maßstab geht.
Der Programmablauf sieht in etwa so aus: Für jede Zelle des Arrays wird überprüft wieviele Nachbarn dieser Zelle leben. Je nachdem wieviele das sind ändert sich dann der Zustand dieser Zelle oder er bleibt gleich.
(Dazu sei gesagt, dass am Anfang vllt 50% der Zellen lebendig sind, das nimmt im Laufe der Zeit aber stetig ab).
Wie gesagt, im kleinen Maßstab ist das überhaupt kein Problem. Nehme ich dann aber z.b. eine Feldgröße von 1.000.000 * 1.000.000 komme ich damit nichtmehr klar ;) Ich habe schon Implementierungen gesehen in denen solche Zahlen verwendet wurden, es muss also irgendwie möglich sein. :)

Jetzt suche ich ne Datenstruktur um das ganze auf die oben genannte Größe zu bringen. Da habe ich mir folgendes überlegt:
1. 2d-boolean Array: bei 1m*1m komme ich schon auf mehrere GB an Datenvolumen.
2. ne Art Liste in der ich alle Koordinaten abspeichere auf der eine Zelle "lebt". Nachteil den ich darin sehe, ist dass diese Liste seeeehr oft durchlaufen werden muss für jeden Berechnungsschritt :p

Habt ihr da irgendwelche Vorschläge wie ich sowas realisieren kann?

Gruß,
Eike

Programmcode:
Java:
    public void calculateNextGeneration() {
        boolean[][] nextGen = new boolean[size][size];
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++) {
                if (currentGeneration[i][j]) {
                    // Lebende Zelle
                    if (getLivingNeighboursCount(i, j) < 2) {
                        nextGen[i][j] = false;
                    } else if (getLivingNeighboursCount(i, j) == 2 || getLivingNeighboursCount(i, j) == 3) {
                        nextGen[i][j] = true;
                    } else if (getLivingNeighboursCount(i, j) > 3) {
                        nextGen[i][j] = false;
                    }
                } else {
                    // Tote Zelle
                    if (getLivingNeighboursCount(i, j) == 3) {
                        nextGen[i][j] = true;
                    } else {
                        nextGen[i][j] = false;
                    }
                }
            }
        }

        // Neue Generation übernehmen
        currentGeneration = nextGen;
        generationCounter++;
    }
 

0x7F800000

Top Contributor
Conways game of life... Es gibt eine Menge dicker Bücher dazu, hast du da schonmal reingeguggt?

Spontan würde ich einen Quadtree vorschlagen, bei dem sich die Knoten zusätzlich aktivieren bzw. deaktivieren lassen: wenn keine Änderungen in der nachbarschaft vorhanden sind, braucht man auch nicht dauernd alles neuzuberechnen. Der speicherverbrauch wäre dann linear zur größe der welt, bzw. des "viechs". Wie das konkret funktionieren soll, müsste ich mal ausprobieren...

Weißt du was, ich schreib's mal grad, hab mir sowas schon immer gewünscht^^ :)
 
Zuletzt bearbeitet:

Marco13

Top Contributor
BitSet (Java Platform SE 6) würde schonmal sehr viel weiter helfen... Am besten als 1D-Bitset - die Umrechnung in 2D ist ja trivial.

Aber wie auch immer man es macht: Bei 1m*1m kommen (und da hilft selbst die beste Datenstruktur nichts) 125 GB zusammen. Auf einem 64bit-Rechner könnte das gehen ;) aber so: Keine Chance (irgendwas mit ZIP-Dateien auf der Festplatte mal außen vor gelassen ; ) )
 

0x7F800000

Top Contributor
Aber wie auch immer man es macht: Bei 1m*1m kommen (und da hilft selbst die beste Datenstruktur nichts) 125 GB zusammen.

Ähm, wenn man jede einzelne inaktive tote zelle abspeichern will, dann schon. Wenn man nur die lebenden speichert, ist (zumindest beim klassischen Game) eine enorme ersparnis möglich, auch wenn der zugriff nur noch in O(ln(n)) im worst case funzt. (Also: ich widerspreche schon wieder ohne lange nachforschungen^^ Erzähle ich irgendwie Unsinn oder doch nicht? ;) )
 
G

Gast2

Gast
Genau, es handelt sich um Conways Game of Life. Da bin ich während des Mathe lernens drauf gestoßen und musste das direkt mal ausprobieren ;)

Ich werde mir Quadtree und das BitSet mal anschauen. Auch die Idee nicht immer alles komplett neu zu berechnen hört sich gut an.

Hier ist übrigens dier Version die 1miox1mio schaffen soll:
Untitled Document
 

Painii

Bekanntes Mitglied
Evtl. könntest du auch deine if-Abfragen verbessern...
Du rufst ja in jeder Abfrage die Methode [c]getLivingNeighboursCount(i, j)[/c] bis zu 4 mal auf. Ruf sie doch einfach am Anfang der Methode einmal auf, die ändert sich ja eh nicht bis zum nächsten Generationswechsel, den du ja grad erst berechnest.

Hilft vielleicht auch etwas gegen das Speicher-Problem.
 

Marco13

Top Contributor
Hab mal ein BigBitSet gebastelt, das die Bits in einem File-MappedByteBuffer speichert, und ein BigBitSet2D, das eine 2D-Ansicht auf ein BigBitSet bietet, und ein LargeBitSet2D, das mehrere "Tiles" aus BigBitSet2D zusammenfasst, so dass man (theoretisch) "virtuell" auch ein 50-Millionen x 50-Millionen-Universum anlegen könnte. Dabei werden die eigentlichen Tiles erst erzeugt, wenn es nötig ist, und was passiert, wenn wirklich viele Tiles nötig wären, habe ich noch nicht getestet - aber es wäre zumindest ein möglicher Ansatz. Anders kriegt man 125 GB eben nicht unter....

Java:
// By Marco13 for [url]http://www.java-forum.org/java-basics-anfaenger-themen/89748-datenstruktur-gesucht.html[/url]

import java.io.*;
import java.nio.*;
import java.nio.channels.*;


public class LargeData
{
    public static void main(String[] args) throws Exception
    {

        LargeBitSet2D lbs = new LargeBitSet2D(5000000,5000000);

        System.out.println("Setting true-false-true");

        lbs.set(39999,1999999, true);
        lbs.set(40000,2000000, false);
        lbs.set(40001,2000001, true);

        System.out.println(lbs.get(39999,1999999));
        System.out.println(lbs.get(40000,2000000));
        System.out.println(lbs.get(40001,2000001));

        System.out.println("Setting false-true-false");

        lbs.set(39999,1999999, false);
        lbs.set(40000,2000000, true);
        lbs.set(40001,2000001, false);

        System.out.println(lbs.get(39999,1999999));
        System.out.println(lbs.get(40000,2000000));
        System.out.println(lbs.get(40001,2000001));


    }
}


class LargeBitSet2D
{
    // Max 130000 for 2GB files!
    private static final int tileSizeX = 40000;
    private static final int tileSizeY = 40000;

    private BigBitSet2D bbs[][];

    public LargeBitSet2D(long sizeX, long sizeY)
    {
        int numTilesX = (int)Math.ceil((double)sizeX / tileSizeX);
        int numTilesY = (int)Math.ceil((double)sizeY / tileSizeY);

        bbs = new BigBitSet2D[numTilesX][numTilesY];
    }

    public void set(long x, long y, boolean flag)
    {
        int tileX = (int)(x / tileSizeX);
        int tileY = (int)(y / tileSizeY);
        if (bbs[tileX][tileY] == null)
        {
            if (!flag)
            {
                return;
            }
            System.out.println("Creating tile "+tileX+" "+tileY+" for position "+x+" "+y);
            try
            {
                bbs[tileX][tileY] = new BigBitSet2D(tileSizeX, tileSizeY);
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
        int localX = (int)(x % tileSizeX);
        int localY = (int)(y % tileSizeY);
        bbs[tileX][tileY].set(localX, localY, flag);
    }

    public boolean get(long x, long y)
    {
        int tileX = (int)(x / tileSizeX);
        int tileY = (int)(y / tileSizeY);
        if (bbs[tileX][tileY] == null)
        {
            return false;
        }
        int localX = (int)(x % tileSizeX);
        int localY = (int)(y % tileSizeY);
        return bbs[tileX][tileY].get(localX, localY);
    }


}



class BigBitSet
{
    private MappedByteBuffer mappedByteBuffer;

    public BigBitSet(long numBits) throws IOException
    {
        long numBytes = (long)Math.ceil((double)numBits / 8);

        System.out.println("Creating BigBitSet with "+
            numBits+" bits ("+numBytes+" bytes)");

        File file = File.createTempFile("BigBitSet", "txt");
        RandomAccessFile raf = new RandomAccessFile(file, "rw");
        mappedByteBuffer = raf.getChannel().map(
            FileChannel.MapMode.READ_WRITE, 0, numBytes);
        for(int i = 0; i < numBytes; i++)
        {
            mappedByteBuffer.put((byte)0);
        }
    }

    public void set(int index, boolean flag)
    {
        int byteIndex = index / 8;
        int bitIndex = index % 8;
        byte b = mappedByteBuffer.get(byteIndex);
        int bit = 1 << bitIndex;
        if (flag)
        {
            b |= bit;
        }
        else
        {
            b &= ~bit;
        }
        mappedByteBuffer.put(byteIndex, b);
    }

    public boolean get(int index)
    {
        int byteIndex = index / 8;
        int bitIndex = index % 8;
        byte b = mappedByteBuffer.get(byteIndex);
        int bit = 1 << bitIndex;
        return (b & bit) != 0;
    }
}

class BigBitSet2D
{
    private int sizeX;
    private int sizeY;

    private BigBitSet bbs;

    public BigBitSet2D(int sizeX, int sizeY) throws IOException
    {
        this.sizeX = sizeX;
        this.sizeY = sizeY;
        bbs = new BigBitSet((long)sizeX * sizeY);
    }

    public void set(int x, int y, boolean flag)
    {
        int index = y * sizeX + x;
        bbs.set(index, flag);
    }

    public boolean get(int x, int y)
    {
        int index = y * sizeX + x;
        return bbs.get(index);
    }
}
 

Landei

Top Contributor
Hier ist eine fast funktionierende Implementierung. Da ist noch ein Bug in LongQuadTree: die Koordinate 7,7 wird unbegreiflicherweise nicht gesetzt. Irgendwelche Ideen? Hab' leider keine Zeit, leider will mich meine Firma (ebenfalls unbegreiflicherweise) nicht für QuadTrees bezahlen :-/

Java:
public abstract class QuadTree {

  abstract public boolean get(int x, int y);

  abstract public void flip(int x, int y);

  abstract public void set(int x, int y, boolean value);

  abstract public boolean isEmpty();

  private static class LongQuadTree extends QuadTree {
    private long data = 0L;

    public boolean get(int x, int y) {
      return (data & (1L << (x + 8 * y))) > 0;
    }

    public void flip(int x, int y) {
      data ^= (1L << (x + 8 * y));
    }

    public void set(int x, int y, boolean value) {
      if (value) {
        data |= (1L << (x + 8 * y));
      } else {
        data &= ~(data & (1L << (x + 8 * y)));
      }
    }

    public boolean isEmpty() {
      return data == 0;
    }
  }

  private static class BigQuadTree extends QuadTree {
    private final int factor;
    private final int split;
    private QuadTree[] trees;
    
    private BigQuadTree(int factor) {
      this.factor = factor;
      this.split = 1 << (factor - 1);
    }
    
    public boolean get(int x, int y) {
      if (trees == null) {
        return false;
      } else {
        QuadTree tree = trees[(x < split ? 0 : 1) + (y < split ? 0 : 2)];        
        return tree == null ? false : tree.get(x % split, y % split);
      }
    }

    public void flip(int x, int y) {
      if (trees == null) {
        trees = new QuadTree[4];
      }
      int k = (x < split ? 0 : 1) + (y < split ? 0 : 2);
      QuadTree tree = trees[k];        
      if (tree == null) {
        tree = create(factor-1);
        trees[k] = tree;
      }  
      tree.flip(x % split, y % split);
      if (tree.isEmpty()) {
        trees[k] = null;
        if (trees[0] == null && trees[1] == null && trees[2] == null && trees[3] == null) {
          trees = null;
        }
      }
    }

    public void set(int x, int y, boolean value) {
      if (trees == null) {
        trees = new QuadTree[4];
      }
      int k = (x < split ? 0 : 1) + (y < split ? 0 : 2);
      QuadTree tree = trees[k];        
      if (tree == null) {
        tree = create(factor-1);
        trees[k] = tree;
      }  
      tree.set(x % split, y % split, value);
      if (! value && tree.isEmpty()) {
        trees[k] = null;
        if (trees[0] == null && trees[1] == null && trees[2] == null && trees[3] == null) {
          trees = null;
        }
      }
    }

    public boolean isEmpty() {
      return trees == null;
    }
  }  

  public static QuadTree create(int factor) {
    if (factor < 3) {
      throw new IllegalArgumentException("Factor must be at least 3");
    } else if (factor == 3) {
      return new LongQuadTree();
    } else {
      return new BigQuadTree(factor);
    }
  }
}
 

ice-breaker

Top Contributor
ich würde da eher zu einem kd Tree greifen, da der Speicherplatz bei dir stetig abnehmen würden und der Baum für Bereichsabfragen sehr gut geeignet ist.
 
G

Gast2

Gast
Ich danke euch beiden, werde beide Implementierungen heute abend mal ausprobieren.
 

Marco13

Top Contributor
Hab' bei meinem mal getestet, ob man damit wirklich so ein großes Universum repräsentieren könnte - das geht so unmittelbar erstmal nicht.. :( Hab noch versucht den MappedByteBuffer nur in einer SoftReference zu halten, aber da haut's ihn immernoch mit einem OutOfMemoryError raus - sollte eigentlich nicht sein ... :autsch: hab' aber gerade keine Zeit, daran weiterzumachen...
 

Marco13

Top Contributor
Es gibt kein "normal" :bae:
In der Beschreibung des Programmes steht, dass dort beliebige Sachen (z.B. auch Bitmaps) eingelesen werden können. Selbst wenn es "meistens" weniger als 2GB "echte" Daten sind, muss der Fall, dass es DOCH mehr als 2GB sind, abgedeckt sein - und egal ob mit einem Quadtree oder einem numTilesX*numTilesY-Tree: Ohne irgendeine Form von File-Mapping wird das nicht hinhauen....
 

Landei

Top Contributor
Aber wenn ich das richtig sehe, belegst du auch für leere Bereiche Speicher, oder täusche ich mich da?
 

Marco13

Top Contributor
Erstmal nicht direkt - es wird ein numTilesX*numTilesY-Array erstellt, und nur wirklich ein Tile reingelegt, wenn dort ein Bit auf 'true' gesetzt wird - ähnlich wie bei deinem QuadTree. Theoretisch könnte man sich ja noch 1000 Sachen überlegen (mitzählen, wie viele bits gesetzt sind, und bei 0 gesetzen bits das Tile wieder löschen und so).

Wenn man davon ausgehen könnte, dass IMMER nur "wenige" Bits gesetzt sind, könnte man ihn ähnlichen Anwendungsszenarien auch in Erwägung ziehen (!) dem einfach eine HashSet<Coordinates> zugrunde zu legen, um zu speichern, an welchen Koordinaten ein bit gesetzt ist.... Aber wie gesagt: Bei 40 Milliarden ("zufällig") gesetzten Bits passt's einfach nicht mehr in dem RAM....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Datenstruktur gesucht Java Basics - Anfänger-Themen 3
P Datenstruktur gesucht: Array mit Dictionary Java Basics - Anfänger-Themen 2
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
FelixN Teilsummenproblem / welche Datenstruktur Java Basics - Anfänger-Themen 2
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
O Datenstruktur auf SET prüfen in O(n) Java Basics - Anfänger-Themen 32
O Vererbung Ueben mit kleiner Datenstruktur von Räumen Java Basics - Anfänger-Themen 10
A Datenstruktur für Savings Algorithmus und Planung von kleinen Programmierprojekten Java Basics - Anfänger-Themen 1
F Beste Datenstruktur zum Speichern? Java Basics - Anfänger-Themen 1
I Spielbrett programmieren: Datenstruktur Java Basics - Anfänger-Themen 3
R Klassen Die lineare Datenstruktur Queue Java Basics - Anfänger-Themen 3
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
C Methoden Datenstruktur Liste Java Basics - Anfänger-Themen 3
S Datentypen nicht lineare STATISCHE Datenstruktur? Java Basics - Anfänger-Themen 10
S Zusammenhang Datenstruktur/Algorithmus Java Basics - Anfänger-Themen 1
Luk10 Geeignete Datenstruktur Java Basics - Anfänger-Themen 4
J Erzeugen einer Datenstruktur Java Basics - Anfänger-Themen 12
T Datenstruktur für Sortierung Java Basics - Anfänger-Themen 4
H mehrdimensionale Datenstruktur erfassen Java Basics - Anfänger-Themen 10
StupidAttack Gson, welche Datenstruktur? Java Basics - Anfänger-Themen 4
T Java-Datenstruktur: zuweisen von Strings auf Listen von Strings Java Basics - Anfänger-Themen 10
N Vektor mit eigener Datenstruktur sortieren Java Basics - Anfänger-Themen 20
D Welche Datenstruktur für welche Problemstellung? Java Basics - Anfänger-Themen 10
A begrenzte Datenstruktur zur Speicherung von bytes Java Basics - Anfänger-Themen 6
H Adjazenzliste - Datenstruktur aber wie? Java Basics - Anfänger-Themen 7
Povlsen84 Datentypen Große, sortierte, schnelle Datenstruktur Java Basics - Anfänger-Themen 9
B Finden gemeinsamer Kanten: welche Datenstruktur ? Java Basics - Anfänger-Themen 9
B Schlange Datenstruktur Java Basics - Anfänger-Themen 16
A Schnelle, dynamische, geordnete Datenstruktur? Java Basics - Anfänger-Themen 11
E Gibt es eine ähnliche Datenstruktur wie eine Hashmap Java Basics - Anfänger-Themen 3
K eigene Hash-Datenstruktur Java Basics - Anfänger-Themen 2
D Was fürne Datenstruktur für Kreuztabelle mit doubles? Java Basics - Anfänger-Themen 1
K Datentyp vs. Datenstruktur - Unterschiede Java Basics - Anfänger-Themen 13
D Was machen wenn Datenstruktur sich ständig ändert? Java Basics - Anfänger-Themen 10
0 Dynamische Datenstruktur ohne Duplikate und mit direkter Elementauswahl Java Basics - Anfänger-Themen 3
G Welche Datenstruktur ( Sets / Maps)? Java Basics - Anfänger-Themen 10
I Datenstruktur eines Terminkalenders Java Basics - Anfänger-Themen 11
K suche nicht dynamisch Datenstruktur Java Basics - Anfänger-Themen 6
M Suche passende Datenstruktur Java Basics - Anfänger-Themen 3
P geeignete Datenstruktur für dreidimensionale Raumbelegung Java Basics - Anfänger-Themen 5
G Suche geeignete Datenstruktur Java Basics - Anfänger-Themen 8
G Baum Datenstruktur Java Basics - Anfänger-Themen 2
U Welche Datenstruktur soll ich nehmen? Java Basics - Anfänger-Themen 11
G Welche Datenstruktur ist hier die sinnvolste Java Basics - Anfänger-Themen 6
G Datenstruktur und die Kommunikation mit der GUI Java Basics - Anfänger-Themen 10
X txt datei in eine datenstruktur einlesen Java Basics - Anfänger-Themen 3
J Datenstruktur Java Basics - Anfänger-Themen 6
G Datenstruktur [int id, int wert] nach wert sortieren? Java Basics - Anfänger-Themen 5
S Welche Datenstruktur für Tabelle/DB? Java Basics - Anfänger-Themen 5
1 Wahl der Datenstruktur für die Suche. Java Basics - Anfänger-Themen 9
G Geeignete Datenstruktur ? Java Basics - Anfänger-Themen 8
N passende Datenstruktur Java Basics - Anfänger-Themen 3
E welche Datenstruktur (Collection) Java Basics - Anfänger-Themen 4
6 Welche Datenstruktur? Java Basics - Anfänger-Themen 3
P Datenstruktur Java Basics - Anfänger-Themen 4
J Kann man Daten innerhalb einer Datenstruktur verändern? Java Basics - Anfänger-Themen 4
K datenstruktur Java Basics - Anfänger-Themen 5
G Datenstruktur abbilden Java Basics - Anfänger-Themen 3
F Welche Datenstruktur für Matrix mit Vektoren? Java Basics - Anfänger-Themen 2
F Gibt es eine Datenstruktur für Koordinaten x, y? Java Basics - Anfänger-Themen 8
E Welche Datenstruktur für Spielbäume? Java Basics - Anfänger-Themen 13
H Datenstruktur für folgende Daten Java Basics - Anfänger-Themen 8
G Komplexe Datenstruktur (Liste heterogener Datensätze) ? Java Basics - Anfänger-Themen 2
P Welche Datenstruktur um schnell zu suchen? Java Basics - Anfänger-Themen 25
S Datenstruktur für Fahrplan einer Buslinie Java Basics - Anfänger-Themen 7
S Heterogene Datenstruktur Problem mit Set Java Basics - Anfänger-Themen 12
G Datenbank VS simpler Datenstruktur Java Basics - Anfänger-Themen 3
K Welche Datenstruktur für eine Bibliotheksanwendung? Java Basics - Anfänger-Themen 5
G datenstruktur für jTable? Java Basics - Anfänger-Themen 4
P Hilfe gesucht Java Basics - Anfänger-Themen 11
Scappy Java Lernpartner gesucht! Java Basics - Anfänger-Themen 40
K Spieleidee gesucht für Informatikprojekt - JAVA (BlueJ)? Java Basics - Anfänger-Themen 15
I Wasserzeichen API gesucht Java Basics - Anfänger-Themen 2
S Anfängeraufgaben gesucht Java Basics - Anfänger-Themen 29
U BestPractise für Deployment unter Windows gesucht Java Basics - Anfänger-Themen 12
R OOP Einfaches Programmierbeispiel für Assoziation, Aggregation und Komposition gesucht Java Basics - Anfänger-Themen 10
S ProgrammierHilfe dringend gesucht ( Icon bewegen) Java Basics - Anfänger-Themen 9
W Neues Lern-Projekt gesucht Java Basics - Anfänger-Themen 8
CT9288 Permanent laufender loop mit Eingabefunktion gesucht Java Basics - Anfänger-Themen 1
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
der_Schokomuffin Hilfe gesucht: String wird auf null gesetzt! Java Basics - Anfänger-Themen 17
O Lösungsansatz gesucht Java Basics - Anfänger-Themen 4
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
W Erste Schritte Rechnen mit Schleifen? Denkanstoß gesucht Java Basics - Anfänger-Themen 15
V Erste Schritte Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule Java Basics - Anfänger-Themen 9
R Spotify API gesucht Java Basics - Anfänger-Themen 3
M Java Insel Aufgaben von der DVD gesucht Java Basics - Anfänger-Themen 2
M Open Source Projekt mit Unit Tests gesucht Java Basics - Anfänger-Themen 5
T Gesucht: Tutorial im Anschluß an Gailer-net bzw. Bradley Kjell Java Basics - Anfänger-Themen 0
Salo Datentypen "Doppelt" List(e) ("gesucht") Java Basics - Anfänger-Themen 6
D Array mit Zufallszahlen, dann sortieren: Hilfe gesucht! Java Basics - Anfänger-Themen 1
D Klassen Gesucht: Einfache Beispiel-Klasse für einen Datentyp Java Basics - Anfänger-Themen 7
G Bei Mouseover Grafik ändern, gutes Vorgehen gesucht Java Basics - Anfänger-Themen 0
E Brauche eine Antwort zum Thema RegEx ( Alternative zur Lösung auch gesucht ) Java Basics - Anfänger-Themen 5
cyro Best Practice Bessere Alterative zu ArrayList gesucht Java Basics - Anfänger-Themen 3
C Lösung für RegEx in Java gesucht Java Basics - Anfänger-Themen 2
E Event gesucht Java Basics - Anfänger-Themen 1
D Kürzel für a = a && b gesucht Java Basics - Anfänger-Themen 12
E Hilfe zur Performance Verbesserung gesucht Java Basics - Anfänger-Themen 1
A Best Practice Ideen für kleines Anfängerschulprojekt gesucht Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben