Java’s Function to Merge Byte Arrays into One


In some cases, we would like to merge a few byte arrays into one. This is also known as concatenating the arrays. We can use the following Java utility/static function to do so:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class ArrayUtils {
  /**
   * merge arrays.
   *
   * @param arrays - arrays to merge
   * @return - merged array
   */
  public static byte[] merge(byte[]... arrays) {
    var count = 0;
    // obtain the total length of the merged array
    for (var array : arrays) {
      count += array.length;
    }
 
    // copy all the arrays into the new array
    var result = new byte[count];
    int start = 0;
    for (var array : arrays) {
      System.arraycopy(array, 0, result, start, array.length);
      start += array.length;
    }
    return result;
  }
}
public class ArrayUtils {
  /**
   * merge arrays.
   *
   * @param arrays - arrays to merge
   * @return - merged array
   */
  public static byte[] merge(byte[]... arrays) {
    var count = 0;
    // obtain the total length of the merged array
    for (var array : arrays) {
      count += array.length;
    }

    // copy all the arrays into the new array
    var result = new byte[count];
    int start = 0;
    for (var array : arrays) {
      System.arraycopy(array, 0, result, start, array.length);
      start += array.length;
    }
    return result;
  }
}

The idea is to first compute the result’s array’s length, and then copy over each array one by one. Example usage:

1
2
3
var arr1 = new byte[3] {1, 2, 3};
var arr2 = new byte[3] {4, 5, 6};
var result = Arrays.merge(arr1, arr2); // contains {1, 2, 3, 4, 5, 6}
var arr1 = new byte[3] {1, 2, 3};
var arr2 = new byte[3] {4, 5, 6};
var result = Arrays.merge(arr1, arr2); // contains {1, 2, 3, 4, 5, 6}

We can pass as many arrays as we want as we are using the triple dots syntax to allow variant length of parameters in Java.

–EOF (The Ultimate Computing & Technology Blog) —

GD Star Rating
loading...
230 words
Last Post: Teaching Kids Programming - Remove One Number to Make Average
Next Post: Teaching Kids Programming - Implementation of Cartesian Product in Python via Depth First Search Algorithm

The Permanent URL is: Java’s Function to Merge Byte Arrays into One

Leave a Reply