How to split a string array into small chunk arrays in java?

前端 未结 12 1959
春和景丽
春和景丽 2020-12-05 05:15

Below is the example of the code snippet which needs the help

Example:

[1,2,3,4,5]
  • if the chunk size is 1,
12条回答
  •  悲哀的现实
    2020-12-05 05:31

            import java.util.Arrays;
    
            public class ArrayChunk {
    
                public static void main(String[] args) {
    
                    int[] array = {1,2,3,4,5};
    
                    
                     int[][] chunks1 = ArrayChunk(array, 1);
                     print(chunks1);
                     int[][] chunks2 = ArrayChunk(array, 2);
                     print(chunks2);
                     int[][] chunks3 = ArrayChunk(array, 3);
                     print(chunks3);
    
                     
                     
                }
    
                public static int[][] ArrayChunk(int[] array, int chunkSize) {
                    int numOfChunks = (int) Math.ceil((double) array.length / chunkSize);
                    int[][] output = new int[numOfChunks][];
    
                    for (int i = 0; i < numOfChunks; i++) {
                        int start = i * chunkSize;
                        int length = Math.min(array.length - start, chunkSize);
    
                        int[] temp = new int[length];
                        System.arraycopy(array, start, temp, 0, length);
                        output[i] = temp;
                    }
    
                    //
                    return output;
                }
    
                private static void print(int[][] output) {
                    //
                    System.out.println("======================");
                    for (int[] x : output)
                        System.out.println(Arrays.toString(x));
                }
                
    
            }
    
    
    
            ======================
            [1]
            [2]
            [3]
            [4]
            [5]
            ======================
            [1, 2]
            [3, 4]
            [5]
            ======================
            [1, 2, 3]
            [4, 5]
    

提交回复
热议问题