Рубрики

Как получить фрагмент примитивного массива в Java

С учетом массива Primitive Array задача состоит в том, чтобы получить фрагмент этого массива в Java, используя начальный и конечный индексы.

Примеры:

Input: arr[] = {1, 2, 3, 4, 5}, startIndex = 2, endIndex = 4
Output: {3, 4, 5}

Input: arr[] = {1, 2, 3, 4, 5}, startIndex = 0, endIndex = 1
Output: {1, 2}
  • Метод 1 : Наивный метод.
    1. Получите Массив и startIndex и endIndex.
    2. Создайте и очистите примитивный массив размером endIndex-startIndex.
    3. Скопируйте элементы из startIndex в endIndex из исходного массива в массив слайсов.
    4. Вернуть или распечатать фрагмент массива.

    Ниже приведена реализация вышеуказанного подхода:

    // Java-программа для получения фрагмента
    // примитивного массива

      

    import java.util.Arrays;

      

    class GFG {

        // Функция для получения фрагмента примитивного массива в Java

        public static int[] getSliceOfArray(int[] arr, 

                                         int start, int end)

        {

      

            // Получить фрагмент массива

            int[] slice = new int[end - start];

      

            // Копировать элементы arr в слайс

            for (int i = 0; i < slice.length; i++) {

                slice[i] = arr[start + i];

            }

      

            // вернуть ломтик

            return slice;

        }

        public static void main(String[] args)

        {

      

            // Получить массив, startIndex и endIndex

            int[] arr = { 1, 2, 3, 4, 5 };

            int start = 2, end = 4;

      

            // Получить фрагмент массива

            int[] slice = getSliceOfArray(arr, start, end + 1);

      

            // Распечатать фрагмент массива

            System.out.println(Arrays.toString(slice));

        }

    }

    Выход:

    [3, 4, 5]
    
  • Способ 2 : использование метода Arrays.copyOfRange () .
    1. Получите Массив и startIndex и endIndex.
    2. Получите фрагмент, используя метод Arrays.copyOfRange ().
    3. Вернуть или распечатать фрагмент массива.

    Ниже приведена реализация вышеуказанного подхода:

    // Java-программа для получения фрагмента
    // примитивного массива

      

    import java.util.Arrays;

      

    class GFG {

        // Функция для получения фрагмента примитивного массива в Java

        public static int[] getSliceOfArray(int[] arr,

                                int startIndex, int endIndex)

        {

      

            // Получить фрагмент массива

            int[] slice = Arrays

                              .copyOfRange(

      

                                  // Источник

                                  arr,

      

                                  // Стартовый индекс

                                  startIndex,

      

                                  // Конечный индекс

                                  endIndex);

      

            // вернуть ломтик

            return slice;

        }

        public static void main(String[] args)

        {

      

            // Получить массив, startIndex и endIndex

            int[] arr = { 1, 2, 3, 4, 5 };

            int start = 2, end = 4;

      

            // Получить фрагмент массива

            int[] slice = getSliceOfArray(arr, start, end + 1);

      

            // Распечатать фрагмент массива

            System.out.println(Arrays.toString(slice));

        }

    }

    Выход:

    [3, 4, 5]
    
  • Способ 3 : использование потоков Java 8
    1. Получите Массив и startIndex и endIndex.
    2. Преобразуйте указанный диапазон элементов из startIndex в endIndex в Primitive Stream с помощью метода range ().
    3. Сопоставьте указанные элементы из исходного массива с помощью метода map ().
    4. Преобразуйте сопоставленный массив в массив, используя метод toArray ().
    5. Вернуть или распечатать фрагмент массива.

    Ниже приведена реализация вышеуказанного подхода:

    // Java-программа для получения фрагмента
    // примитивного массива

      

    import java.util.Arrays;

    import java.util.stream.IntStream;

      

    class GFG {

      

        // Функция для получения фрагмента примитивного массива в Java

        public static int[] getSliceOfArray(int[] arr, 

                                  int startIndex, int endIndex)

        {

      

            // Получить фрагмент массива

            int[] slice = IntStream

      

                              // Преобразовать указанные элементы

                              // из массива в IntStream

                              .range(startIndex, endIndex)

      

                              // лямбда-выражение для получения

                              // элементы IntStream

                              .map(i -> arr[i])

      

                              // Преобразовать сопоставленные элементы

                              // в массив слайсов

                              .toArray();

      

            // вернуть ломтик

            return slice;

        }

        public static void main(String[] args)

        {

      

            // Получить массив, startIndex и endIndex

            int[] arr = { 1, 2, 3, 4, 5 };

            int start = 2, end = 4;

      

            // Получить фрагмент массива

            int[] slice = getSliceOfArray(arr, start, end + 1);

      

            // Распечатать фрагмент массива

            System.out.println(Arrays.toString(slice));

        }

    }

    Выход:

    [3, 4, 5]
    

Рекомендуемые посты:

Как получить фрагмент примитивного массива в Java

0.00 (0%) 0 votes