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 > 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 > 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
- copyOfRange(byte[] bytes, int offset, int len)
- copyOfRange(byte[] original, int from, int to)
- copyOfRange(byte[] original, int from, int to)
- copyOfRange(byte[] original, int from, int to)
- copyOfRange(byte[] original, int from, int to)
- copyOfRange(char[] original, int from, int to)
- copyOfRange(final byte[] array, final int startIndex, final int endIndex)
- copyOfRange(final byte[] original, final int from, final int to)
- copyOfRange(final double[] data, final int start, final int end)