Πρόγραμμα Kotlin για συνένωση δύο συστοιχιών

Σε αυτό το πρόγραμμα, θα μάθετε να συνδυάζετε δύο πίνακες στο Kotlin χρησιμοποιώντας arraycopy και χωρίς αυτό.

Παράδειγμα 1: Συνδυάστε δύο συστοιχίες χρησιμοποιώντας arraycopy

 import java.util.Arrays fun main(args: Array) ( val array1 = intArrayOf(1, 2, 3) val array2 = intArrayOf(4, 5, 6) val aLen = array1.size val bLen = array2.size val result = IntArray(aLen + bLen) System.arraycopy(array1, 0, result, 0, aLen) System.arraycopy(array2, 0, result, aLen, bLen) println(Arrays.toString(result)) )

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

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

Στο παραπάνω πρόγραμμα, έχουμε δύο ακέραιους πίνακες array1 και array2.

Για να συνδυάσουμε (συνδυασμένες) δύο συστοιχίες, βρίσκουμε το μήκος του αποθηκευμένο σε aLen και bLen αντίστοιχα. Στη συνέχεια, δημιουργούμε ένα νέο αποτέλεσμα ακέραιου πίνακα με μήκος aLen + bLen.

Τώρα, για να συνδυάσουμε και τα δύο, αντιγράφουμε κάθε στοιχείο και στις δύο συστοιχίες ώστε να προκύπτει χρησιμοποιώντας τη λειτουργία arraycopy ().

Η arraycopy(array1, 0, result, 0, aLen)συνάρτηση, με απλούς όρους, λέει στο πρόγραμμα να αντιγράψει το array1 ξεκινώντας από ευρετήριο 0σε αποτέλεσμα από ευρετήριο 0σε aLen.

Παρομοίως, για arraycopy(array2, 0, result, aLen, bLen)λέει στο πρόγραμμα να αντιγράψει τον πίνακα 2 ξεκινώντας από ευρετήριο 0σε resultαπό ευρετήριο aLen έως bLen.

Παράδειγμα 2: Συνδυασμός δύο συστοιχιών χωρίς τη χρήση συστοιχιών

 import java.util.Arrays fun main(args: Array) ( val array1 = intArrayOf(1, 2, 3) val array2 = intArrayOf(4, 5, 6) val length = array1.size + array2.size val result = IntArray(length) var pos = 0 for (element in array1) ( result(pos) = element pos++ ) for (element in array2) ( result(pos) = element pos++ ) println(Arrays.toString(result)) )

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

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

Στο παραπάνω πρόγραμμα, αντί να το χρησιμοποιούμε arraycopy, αντιγράφουμε με μη αυτόματο τρόπο κάθε στοιχείο και των δύο συστοιχιών array1 και array2 στο αποτέλεσμα.

Αποθηκεύουμε το συνολικό μήκος που απαιτείται για το αποτέλεσμα, δηλαδή array1.length + array2. length. Στη συνέχεια, δημιουργούμε ένα νέο αποτέλεσμα πίνακα μήκους.

Τώρα, χρησιμοποιούμε για κάθε βρόχο για να βρούμε κάθε στοιχείο του πίνακα 1 και να το αποθηκεύουμε στο αποτέλεσμα. Μετά την εκχώρηση αυτή, θα αυξήσει τις pos θέση 1, pos++.

Ομοίως, κάνουμε το ίδιο για τον πίνακα 2 και αποθηκεύουμε κάθε στοιχείο στο αποτέλεσμα ξεκινώντας από τη θέση μετά τον πίνακα1.

Εδώ είναι ο ισοδύναμος κώδικας Java: Πρόγραμμα Java για συνένωση δύο συστοιχιών.

ενδιαφέροντα άρθρα...