javaarrayscopyjava1.4

Java copy section of array


Is there a method that will copy a section of an array(not arraylist) and make a new array from it?

Example:
[1,2,3,4,5]

and you create a new array from it:

[1,2,3]

Are there any one line/methods that will do this?


Solution

  • Here's a java 1.4 compatible 1.5-liner:

    int[] array = { 1, 2, 3, 4, 5 };
    int size = 3;
    
    int[] part = new int[size];
    System.arraycopy(array, 0, part, 0, size);
    

    You could do this in one line, but you wouldn't have a reference to the result.

    To make a one-liner, you could refactor this into a method:

    private static int[] partArray(int[] array, int size) {
        int[] part = new int[size];
        System.arraycopy(array, 0, part, 0, size);
        return part;
    }
    

    then call like this:

    int[] part = partArray(array, 3);