Zu den Aufzeichnungen der tutorials.de-Live-Workshops
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
5181
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Lord_Tribual Lord_Tribual ist offline Grünschnabel
    Registriert seit
    Apr 2007
    Beiträge
    2
    Hallo @ all,

    Also ...
    Ich wollte für ein Programm, 2 Arrays zusammenfügen sprich mergen.
    Lediglich das anhängen von Arrays ist easy ... sprich man hat:

    int [ ] Array = {1,2,3,4};
    und
    z.b.
    int [ ] Array2 = {5,6,7,8};

    das Ergebnis wäre dann logischerweise 12345678 ... also das mergen bekomme ich mit einer Methode hin ... doch nun zu meiner Frage:

    Ich möchte die selben Arrays zusammenfügen jedoch abwechselnd ... schwer zu erklären :P ... Also es besteht ein 3 Arrys ... das solang ist wie beide Arrays davor ... also mit 8 Werten und 7 Indexe ...

    Ich möchte es jedoch nun so mergen das jeweils ein Wert von Array und ein Wert von Array2 eingefügt werden bis alle Werten abwechselnd eingefügt wurden ...
    Das Ergebnis würde so ausschauen:

    1,5,2,6,3,7,4,8 ... ich hoffe man kann es verstehen ... hatte meine Probleme mich bei meinen Problem richtig zu verständigen ... tut mir leid

    Hoffe mir kann jemand helfen ...

    Ich hatte schon einen Ansatz aber jedoch bekomme ich immer eine OutOfBounceException ... aber ich habe keine Ahnung ...

    Liebe Grüße, Lord_Tribual
     

  2. #2
    Registriert seit
    Oct 2003
    Beiträge
    1.706
    Hallo,

    wie wäre es damit?

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
            int[] array1 = new int[]{1, 2, 3, 4};
            int[] array2 = new int[]{5, 6, 7, 8};
            int[] result = new int[array1.length + array2.length];
          
            for (int i = 0; i < result.length; i += 2) {
                result[i] = array1[i / 2];
                result[i + 1] = array2[i / 2];
            } 
     
            for (int elem : result)
                System.out.println(elem);

    P.S. array1 und array2 sollten dabei nat. gleich groß sein...

    Gruß,
    RedWing
    Geändert von RedWing (07.02.09 um 01:22 Uhr)
     
    "I'm not deaf, I'm ignoring you"
    ----

  3. #3
    Kai008 Kai008 ist offline Mitglied Brillant
    Registriert seit
    May 2008
    Ort
    Brunn/Geb. (Niederösterreich)
    Beiträge
    944
    Blog-Einträge
    1
    €: Mist, zu langsam. ;____;

    Dann ist wohl das Array zu klein.
    Also ich fand es einfach zu verstehen, hab schon bei "Ich möchte die selben Arrays zusammenfügen jedoch abwechselnd" gewusst (bzw. richtig geahnt) was du meinst.
    Ist vielleicht nicht soooo schön, aber es steht dir ja frei es zu verbessern. Da ich nicht wusste was er bei Arrays mit ungleicher Länge machen soll (es direkt dranschreiben oder den Rymus beibehalten?) bricht er in dem Fall mit ner Null ab.

    Code java:
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    
    package core;
     
    public final class Main
    {
        public Main()
        {
            int[] array0 = this.createAndFillArray0();
            int[] array1 = this.createAndFillArray1();
            int[] array2 = this.mergeArrays(array0, array1);
            this.outputteArray(array2);
        }
        private final int[] createAndFillArray0()
        {
            int[] array0 = new int[4];
            
            array0[0] = 1;
            array0[1] = 2;
            array0[2] = 3;
            array0[3] = 4;
            
            return(array0);
        }
        private final int[] createAndFillArray1()
        {
            int[] array1 = new int[4];
            
            array1[0] = 5;
            array1[1] = 6;
            array1[2] = 7;
            array1[3] = 8;
            
            return(array1);
        }
        private final int[] mergeArrays(int[] array0, int[] array1)
        {
            int oldArrayLenghtOne = array0.length;
            int oldArrayLenghtTwo = array1.length;
            
            if(oldArrayLenghtOne != oldArrayLenghtTwo)
                return(null);
            
            int newArrayLenght = (oldArrayLenghtOne * 2);
            int[] array2 = new int[newArrayLenght];
            
            for(int i = 0, j = 0; i < oldArrayLenghtOne; i++, j+=2)
                array2[j] = array0[i];
            for(int i = 0, j = 1; i < oldArrayLenghtOne; i++, j+=2)
                array2[j] = array1[i];
            
            return(array2);
        }
        private final void outputteArray(int[] array)
        {
            for(int number:array)
                System.out.println(number);
        }   
        public final static void main(String[] args)
        {
            new Main();
        }
    }
     

  4. #4
    Lord_Tribual Lord_Tribual ist offline Grünschnabel
    Registriert seit
    Apr 2007
    Beiträge
    2
    Ich danke euch beiden ... und ich muss zugeben, ich hatte die selbe Lösung, nur das ich nicht / 2 gerechnet habe ... deswegen auch die OutOfBounce ... super ... nun bin ich schlauer ... und ich kann weiter machen bei meinem Spiel :P ...
    Also nochmals Danke !

    Liebe Grüße,
    Lord:Tribual
     

Ähnliche Themen

  1. Hibernate Collection mergen
    Von sebastianb im Forum Java
    Antworten: 0
    Letzter Beitrag: 27.09.10, 12:59
  2. Rss feeds mergen
    Von lacie im Forum PHP
    Antworten: 5
    Letzter Beitrag: 05.11.08, 17:47
  3. Automatisches Mergen mit SubVersion
    Von Wurzelseppi im Forum Java
    Antworten: 1
    Letzter Beitrag: 20.05.08, 16:50
  4. PDF mergen
    Von tigerlily im Forum PHP
    Antworten: 1
    Letzter Beitrag: 06.02.08, 15:40
  5. Mehrere Tabellen mergen
    Von deostift im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 04.04.07, 09:58

Stichworte