blob: cecd7fcf5ed5f0e07186c00c7bd7688e1f0e61d0 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 2020 Original authors and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Original authors and others - initial API and implementation
******************************************************************************/
package org.eclipse.nebula.widgets.nattable.util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
public final class ArrayUtil {
private ArrayUtil() {
// private default constructor for helper class
}
public static final String[] STRING_TYPE_ARRAY = new String[] {};
public static final int[] INT_TYPE_ARRAY = new int[] {};
public static <T> List<T> asList(T[] array) {
return new ArrayList<>(ArrayUtil.asCollection(array));
}
public static <T> Collection<T> asCollection(T[] array) {
return Arrays.asList(array);
}
public static int[] asIntArray(int... ints) {
return ints;
}
public static List<Integer> asIntegerList(int... ints) {
return Arrays.stream(ints).boxed().collect(Collectors.toList());
}
public static boolean isEmpty(int[] array) {
return (array == null) || (array.length == 0);
}
public static boolean isEmpty(String[] array) {
return (array == null) || (array.length == 0);
}
public static boolean isNotEmpty(int[] array) {
return !isEmpty(array);
}
public static boolean isNotEmpty(String[] array) {
return !isEmpty(array);
}
/**
* Transforms the given collection of <code>Integer</code>s to an array of
* primitive <code>int</code> values.
*
* @param list
* The collection of <code>Integer</code>s to transform
* @return The array representation of primitive <code>int</code> values.
*/
public static int[] asIntArray(Collection<Integer> list) {
int[] ints = new int[list.size()];
int i = 0;
for (int fromSet : list) {
ints[i] = fromSet;
i++;
}
return ints;
}
/**
* Creates a new <code>int</code> array containing the elements between
* start and end indices.
* <p>
* Similar to Apache Commons Lang <code>ArrayUtils.subarray()</code>
* </p>
*
* @param array
* @param startIndexInclusive
* @param endIndexExclusive
* @return
*/
public static int[] subarray(int[] array, int startIndexInclusive, int endIndexExclusive) {
if (array == null) {
return new int[0];
}
if (startIndexInclusive < 0) {
startIndexInclusive = 0;
}
if (endIndexExclusive > array.length) {
endIndexExclusive = array.length;
}
int newSize = endIndexExclusive - startIndexInclusive;
if (newSize <= 0) {
return new int[0];
}
int[] subarray = new int[newSize];
System.arraycopy(array, startIndexInclusive, subarray, 0, newSize);
return subarray;
}
}