Java Array Range Copy copyOfRange(byte[] original, int from, int to)

Here you can find the source of copyOfRange(byte[] original, int from, int to)

Description

Copies the specified range of the specified array into a new array.

License

Open Source License

Parameter

Parameter Description
original the array from which a range is to be copied
from the initial index of the range to be copied, inclusive
to the final index of the range to be copied, exclusive. (This index may lie outside the array.)

Exception

Parameter Description
ArrayIndexOutOfBoundsException if from < 0or from > original.length
IllegalArgumentException if <tt>from &gt; to</tt>
NullPointerException if <tt>original</tt> is null

Return

a new array containing the specified range from the original array, truncated or padded with zeros to obtain the required length

Declaration

public static byte[] copyOfRange(byte[] original, int from, int to) 

Method Source Code

//package com.java2s;
/*  /*from w  ww.j a  va2 s  .co m*/
 * Copyright 2012, Asamm Software, s. r. o.
 * 
 * This file is part of LocusAPI.
 * 
 * LocusAPI is free software: you can redistribute it and/or modify
 * it under the terms of the Lesser GNU General Public License
 * as published by the Free Software Foundation, either version 3
 * of the License, or (at your option) any later version.
 *  
 * LocusAPI is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * Lesser GNU General Public License for more details.
 *  
 * You should have received a copy of the Lesser GNU General Public
 * License along with LocusAPI. If not, see 
 * <http://www.gnu.org/licenses/lgpl.html/>.
 */

public class Main {
    /**
     * Copies the specified range of the specified array into a new array.
     * The initial index of the range (<tt>from</tt>) must lie between zero
     * and <tt>original.length</tt>, inclusive.  The value at
     * <tt>original[from]</tt> is placed into the initial element of the copy
     * (unless <tt>from == original.length</tt> or <tt>from == to</tt>).
     * Values from subsequent elements in the original array are placed into
     * subsequent elements in the copy.  The final index of the range
     * (<tt>to</tt>), which must be greater than or equal to <tt>from</tt>,
     * may be greater than <tt>original.length</tt>, in which case
     * <tt>(byte)0</tt> is placed in all elements of the copy whose index is
     * greater than or equal to <tt>original.length - from</tt>.  The length
     * of the returned array will be <tt>to - from</tt>.
     *
     * @param original the array from which a range is to be copied
     * @param from the initial index of the range to be copied, inclusive
     * @param to the final index of the range to be copied, exclusive.
     *     (This index may lie outside the array.)
     * @return a new array containing the specified range from the original array,
     *     truncated or padded with zeros to obtain the required length
     * @throws ArrayIndexOutOfBoundsException if {@code from < 0}
     *     or {@code from > original.length}
     * @throws IllegalArgumentException if <tt>from &gt; to</tt>
     * @throws NullPointerException if <tt>original</tt> is null
     * @since 1.6
     */
    public static byte[] copyOfRange(byte[] original, int from, int to) {
        int newLength = to - from;
        if (newLength < 0)
            throw new IllegalArgumentException(from + " > " + to);
        byte[] copy = new byte[newLength];
        System.arraycopy(original, from, copy, 0, Math.min(original.length - from, newLength));
        return copy;
    }

    public static float[] copyOfRange(float[] original, int start, int end) {
        if (start > end) {
            throw new IllegalArgumentException();
        }
        int originalLength = original.length;
        if (start < 0 || start > originalLength) {
            throw new ArrayIndexOutOfBoundsException();
        }
        int resultLength = end - start;
        int copyLength = Math.min(resultLength, originalLength - start);
        float[] result = new float[resultLength];
        System.arraycopy(original, start, result, 0, copyLength);
        return result;
    }
}

Related

  1. copyOfRange(byte[] bytes, int offset, int len)
  2. copyOfRange(byte[] original, int from, int to)
  3. copyOfRange(byte[] original, int from, int to)
  4. copyOfRange(byte[] original, int from, int to)
  5. copyOfRange(byte[] original, int from, int to)
  6. copyOfRange(char[] original, int from, int to)
  7. copyOfRange(final byte[] array, final int startIndex, final int endIndex)
  8. copyOfRange(final byte[] original, final int from, final int to)
  9. copyOfRange(final double[] data, final int start, final int end)