Java-ohjelma kahden matriisin yhdistämiseksi

Tässä ohjelmassa opit yhdistämään kaksi Java-matriisia matriisikopiolla ja ilman sitä.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:

  • Java-taulukot
  • Java jokaiselle silmukalle

Esimerkki 1: Yhdistä kaksi ryhmää matriisikopiolla

 import java.util.Arrays; public class Concat ( public static void main(String() args) ( int() array1 = (1, 2, 3); int() array2 = (4, 5, 6); int aLen = array1.length; int bLen = array2.length; int() result = new int(aLen + bLen); System.arraycopy(array1, 0, result, 0, aLen); System.arraycopy(array2, 0, result, aLen, bLen); System.out.println(Arrays.toString(result)); ) )

Tuotos

 (1, 2, 3, 4, 5, 6)

Yllä olevassa ohjelmassa meillä on kaksi kokonaislukua taulukkoa taulukko1 ja taulukko2.

Kahden matriisin yhdistämiseksi löydämme sen pituuden tallennettuna aLen: ään ja bLen: ään. Sitten luomme uuden kokonaislukutuloksen, jonka pituus on aLen + bLen.

Nyt molempien yhdistämiseksi kopioimme jokaisen elementin molemmista matriisista tulokseksi arraycopy()funktiota käyttämällä .

arraycopy(array1, 0, result, 0, aLen)Toiminto yksinkertaisesti, kertoo ohjelman kopioida matriisi1 alkaen indeksin 0johtuvan indeksiin 0Alen.

Samalla tavoin arraycopy(array2, 0, result, aLen, bLen)kertoo ohjelman kopioida matriisi2 alkaen indeksi 0ja resultindeksistä Alén ja Blen.

Esimerkki 2: ketjuta kaksi ryhmää käyttämättä matriisikopiota

 import java.util.Arrays; public class Concat ( public static void main(String() args) ( int() array1 = (1, 2, 3); int() array2 = (4, 5, 6); int length = array1.length + array2.length; int() result = new int(length); int pos = 0; for (int element : array1) ( result(pos) = element; pos++; ) for (int element : array2) ( result(pos) = element; pos++; ) System.out.println(Arrays.toString(result)); ) )

Tuotos

 (1, 2, 3, 4, 5, 6)

Yllä olevassa ohjelmassa kopioimme sen sijaan arraycopy, että käytämme molempien matriisien matriisi1 ja taulukko2 elementit manuaalisesti tulokseen.

Tallennamme tulokseen tarvittavan kokonaispituuden, ts array1.length + array2. length. Sitten luomme uuden matriisituloksen.

Nyt käytämme jokaiselle silmukalle iteroimaan taulukon1 jokaisen elementin läpi ja tallentamaan sen tulokseen. Jälkeen osoittaa se, lisäämme pos 1, pos++.

Samoin teemme saman matriisille2 ja tallennamme jokaisen elementin tulokseen alkaen taulukon 1 jälkeisestä sijainnista.

Mielenkiintoisia artikkeleita...