- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: Arrays in Java

  1. #11
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Anzeige

    Praxistest und DIY Projekte
    Du kannst auch eine der Tree klassen nehmen. Du stopfst das Zeug da rein und nimmst es sortiert wieder raus. Den COmparator (der zwei Elemente vergleicht und die Ordnung definiert) must du in Tree.Construktor mitliefern. Ist glaub die TreeList oder so... schau halt mal was die java.util so bietet.
    Disclaimer: none. Sue me.

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    10.03.2005
    Alter
    36
    Beiträge
    967
    Die TreeList sieht auch nicht schlecht aus. Werds mir mal genauer angucken. Danke für eure Tipps!
    Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!

  3. #13
    Hi,
    also ich habe nur eben den Post kurz überflogen. Zur ersten Frage ob man ein Array einfach so erweitern kann, kann ich dir sagen das geht nicht. Außer am definiert sich ein größeres Array und schiebt die Daten dort rein. Aber das kann ja nicht im sinne von einem sauberen Progarmier stiel sein. Dafür gibt es in Java die so genannten ArrayListen(java.util.ArrayList). Bei dennen musst du dir keine Gedanken um die Größe machen sie erweitern fortlaufenend, wenn du an die Grenze stößt.

    Sortieren ohne eine Hilfsvari geht, aber das kann ich jetzt nicht mehr aus dem stehgreif beantworteten. Aber was spricht dagegen einen Hilfsvari zu benutzten, das ist eingetlich sogar gängige Praxis.

    Ich hoffe ich konnte dir weitere helfen.

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    21.02.2006
    Alter
    59
    Beiträge
    12
    Hier ein einfaches Beispiel wie es gehen kann, und es ist schnell.
    Dennoch kann man festhalten das die in Util verwendetetn Implementationen von ArrayList etc. sicher genausogut verwendet werden können.

    @uwegw Na ja die Frage ist was für Zeiger brauchst Du? Zeiger auf dedizierte Speicherbereiche bekommst Du in Java nicht, aber Zeiger auf andere Objekte und damit kannst Du ja einfach verkettete Listen etc. bauen

    Code:
    package com.demo.arraycopy;
    
    import java.util.Arrays;
    import java.util.Random;
    
    
    /**
     * Demo für die Verwendung von System.ArrayCopy und Array.sort();
     * @author marohn
     * @since 2.09p
     */
    public class ArrayCopyDemo
    {
      //Original Array
      private Integer[] arrayOfInt = new Integer[10];
      
      /**
       * Konstruktor, Vorbelegung des Arrays mit Integer 1..10
       */
      public ArrayCopyDemo()
      {
        for (int i = 0; i<10; i++)
        {
          arrayOfInt[i] = new Integer(i+1);
        }
      }
      
      /**
       * Schreibt die Werte des Arrays in die Console
       */
      public void dumpArray()
      {
        for (int i = 0; i < arrayOfInt.length; i++)
        {
          System.out.println(arrayOfInt[i].toString());
        }
      }
      
      /**
       * Schreibt zufällige Werte in das Array
       * @param startIdx Index ab dem das Array mit den Werten gefüllt werden soll
       */
      public void fillArrayWithRandomStuff(int startIdx)
      {
        Random rnd = new Random(System.currentTimeMillis());
        for (int i = startIdx; i < arrayOfInt.length; i++)
        {
          arrayOfInt[i] = new Integer(rnd.nextInt());
        }
      }
    
      /**
       * Sortiert das Array mit Hilfe der Arrays.sort -Methode
       * Funktioniert hier so easy weil Integer bereits das Comparator-Interface implementiert
       * bei eigenen Klassen muss sichergestellt werden, das dieses Inerface implementiert wurde  
       */
      public void sortArray()
      {
        Arrays.sort(arrayOfInt);
      }
      
      private void incArray(int anz)
      {
        Integer[] newArr = null;
        if (anz>0 && arrayOfInt != null)
        {
          newArr = new Integer[arrayOfInt.length + anz];
          System.arraycopy(arrayOfInt, 0, newArr, 0, arrayOfInt.length);
        }
        else
        {
          throw new IllegalStateException("Parameter nicht im definierten Bereich");
        }
        arrayOfInt = newArr;   
      }
    
      /**
       * Start
       * @param args - keine
       */
      public static void main(String[] args)
      {
        ArrayCopyDemo demo = new ArrayCopyDemo();
        demo.dumpArray();
        System.out.println("---------------------");
        demo.incArray(10);
        demo.fillArrayWithRandomStuff(10);
        demo.dumpArray();
        System.out.println("---------------------");
        demo.sortArray();
        demo.dumpArray();
        System.out.println("---------------------");
      }
    }

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Solar Speicher und Akkus Tests