Thread: [Japi-cvs] SF.net SVN: japi: [464] libs/util/trunk/src/net/sf/japi/util/Arrays2.java
Status: Beta
Brought to you by:
christianhujer
|
From: <chr...@us...> - 2007-06-30 09:14:19
|
Revision: 464
http://svn.sourceforge.net/japi/?rev=464&view=rev
Author: christianhujer
Date: 2007-06-30 02:14:17 -0700 (Sat, 30 Jun 2007)
Log Message:
-----------
Added missing @NotNull / @Nullable annotations.
Modified Paths:
--------------
libs/util/trunk/src/net/sf/japi/util/Arrays2.java
Modified: libs/util/trunk/src/net/sf/japi/util/Arrays2.java
===================================================================
--- libs/util/trunk/src/net/sf/japi/util/Arrays2.java 2007-06-30 08:56:52 UTC (rev 463)
+++ libs/util/trunk/src/net/sf/japi/util/Arrays2.java 2007-06-30 09:14:17 UTC (rev 464)
@@ -19,14 +19,16 @@
package net.sf.japi.util;
+import java.lang.reflect.Array;
+import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Random;
import java.util.Collection;
+import java.util.Comparator;
import java.util.List;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.lang.reflect.Array;
+import java.util.Random;
import net.sf.japi.util.filter.Filter;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
/** This class provides some additional utility methods you might miss in {@link Arrays}.
* It is named Arrays2 so you have no problems using both, this class and <code>java.util.Arrays</code> (no name conflict).
@@ -46,7 +48,7 @@
* @param a Arrays to concatenate
* @return new Array containing all elements of all arrays
*/
- public static double[] concat(final double[]... a) {
+ @NotNull public static double[] concat(@NotNull final double[]... a) {
int ns = 0;
for (final double[] anA : a) {
ns += anA.length;
@@ -62,7 +64,7 @@
* @param a Arrays to concatenate
* @return new Array containing all elements of all arrays
*/
- public static float[] concat(final float[]... a) {
+ @NotNull public static float[] concat(@NotNull final float[]... a) {
int ns = 0;
for (final float[] anA : a) {
ns += anA.length;
@@ -78,7 +80,7 @@
* @param a Arrays to concatenate
* @return new Array containing all elements of all arrays
*/
- public static long[] concat(final long[]... a) {
+ @NotNull public static long[] concat(@NotNull final long[]... a) {
int ns = 0;
for (final long[] anA : a) {
ns += anA.length;
@@ -94,7 +96,7 @@
* @param a Arrays to concatenate
* @return new Array containing all elements of all arrays
*/
- public static int[] concat(final int[]... a) {
+ @NotNull public static int[] concat(@NotNull final int[]... a) {
int ns = 0;
for (final int[] anA : a) {
ns += anA.length;
@@ -110,7 +112,7 @@
* @param a Arrays to concatenate
* @return new Array containing all elements of all arrays
*/
- public static short[] concat(final short[]... a) {
+ @NotNull public static short[] concat(@NotNull final short[]... a) {
int ns = 0;
for (final short[] anA : a) {
ns += anA.length;
@@ -126,7 +128,7 @@
* @param a Arrays to concatenate
* @return new Array containing all elements of all arrays
*/
- public static char[] concat(final char[]... a) {
+ @NotNull public static char[] concat(@NotNull final char[]... a) {
int ns = 0;
for (final char[] anA : a) {
ns += anA.length;
@@ -142,7 +144,7 @@
* @param a Arrays to concatenate
* @return new Array containing all elements of all arrays
*/
- public static byte[] concat(final byte[]... a) {
+ @NotNull public static byte[] concat(@NotNull final byte[]... a) {
int ns = 0;
for (final byte[] anA : a) {
ns += anA.length;
@@ -158,7 +160,7 @@
* @param a Arrays to concatenate
* @return new Array containing all elements of all arrays
*/
- public static boolean[] concat(final boolean[]... a) {
+ @NotNull public static boolean[] concat(@NotNull final boolean[]... a) {
int ns = 0;
for (final boolean[] anA : a) {
ns += anA.length;
@@ -174,7 +176,7 @@
* @param a Arrays to concatenate
* @return new Array containing all elements of all arrays
*/
- public static <T> T[] concat(final T[]... a) {
+ @NotNull public static <T> T[] concat(@NotNull final T[]... a) {
int ns = 0;
for (final T[] anA : a) {
ns += anA.length;
@@ -193,7 +195,7 @@
* @return array containing only those elements from <var>a</var> accepted by <var>filter</var>
* @see Collections2#filter(Collection,Filter)
*/
- public static <T> T[] filter(final Filter<? super T> filter, final T... a) {
+ @NotNull public static <T> T[] filter(@NotNull final Filter<? super T> filter, @NotNull final T... a) {
//Class<?> ct = a.getClass().getComponentType();
//T[] t = (T[]) Array.newInstance(ct, 0);
//List<T> tl = Arrays.asList(a);
@@ -215,7 +217,7 @@
* @param filter Filter to use for <var>a</var>
* @return number of elements in <var>a</var> accepted by <var>filter</var>
*/
- public static <T> int count(final Filter<? super T> filter, final T... a) {
+ public static <T> int count(@NotNull final Filter<? super T> filter, @NotNull final T... a) {
int n = 0;
for (final T t : a) {
if (filter.accept(t)) {
@@ -245,7 +247,7 @@
* @see Arrays#binarySearch(int[],int)
* @see Arrays#sort(int[])
*/
- public static int binarySearch(final int[] a, final int key, int low, int high) {
+ public static int binarySearch(@NotNull final int[] a, final int key, int low, int high) {
while (low <= high) {
final int mid = low + high >> 1;
final int midVal = a[mid];
@@ -265,7 +267,7 @@
* @param data array of booleans to perform linear search on
* @return index of <var>n</var> in <var>data</var> or -1 if not found
*/
- public static int linearSearch(final boolean z, final boolean[] data) {
+ public static int linearSearch(final boolean z, @NotNull final boolean[] data) {
return linearSearch(z, 0, data.length, data);
}
@@ -274,7 +276,7 @@
* @param data array of chars to perform linear search on
* @return index of <var>n</var> in <var>data</var> or -1 if not found
*/
- public static int linearSearch(final char c, final char[] data) {
+ public static int linearSearch(final char c, @NotNull final char[] data) {
return linearSearch(c, 0, data.length, data);
}
@@ -283,7 +285,7 @@
* @param data array of doubles to perform linear search on
* @return index of <var>n</var> in <var>data</var> or -1 if not found
*/
- public static int linearSearch(final double d, final double[] data) {
+ public static int linearSearch(final double d, @NotNull final double[] data) {
return linearSearch(d, 0, data.length, data);
}
@@ -292,7 +294,7 @@
* @param data array of floats to perform linear search on
* @return index of <var>n</var> in <var>data</var> or -1 if not found
*/
- public static int linearSearch(final float f, final float[] data) {
+ public static int linearSearch(final float f, @NotNull final float[] data) {
return linearSearch(f, 0, data.length, data);
}
@@ -301,7 +303,7 @@
* @param data array of longs to perform linear search on
* @return index of <var>n</var> in <var>data</var> or -1 if not found
*/
- public static int linearSearch(final long l, final long[] data) {
+ public static int linearSearch(final long l, @NotNull final long[] data) {
return linearSearch(l, 0, data.length, data);
}
@@ -310,7 +312,7 @@
* @param data array of ints to perform linear search on
* @return index of <var>n</var> in <var>data</var> or -1 if not found
*/
- public static int linearSearch(final int n, final int[] data) {
+ public static int linearSearch(final int n, @NotNull final int[] data) {
return linearSearch(n, 0, data.length, data);
}
@@ -319,7 +321,7 @@
* @param data array of shorts to perform linear search on
* @return index of <var>n</var> in <var>data</var> or -1 if not found
*/
- public static int linearSearch(final short s, final short[] data) {
+ public static int linearSearch(final short s, @NotNull final short[] data) {
return linearSearch(s, 0, data.length, data);
}
@@ -328,7 +330,7 @@
* @param data array of bytes to perform linear search on
* @return index of <var>n</var> in <var>data</var> or -1 if not found
*/
- public static int linearSearch(final byte b, final byte[] data) {
+ public static int linearSearch(final byte b, @NotNull final byte[] data) {
return linearSearch(b, 0, data.length, data);
}
@@ -340,7 +342,7 @@
* @return index of <var>n</var> in <var>data</var> or -1 if not found
* @throws ArrayIndexOutOfBoundsException in case <code><var>fromIndex</var> < 0</code> or <code><var>toIndex</var> >= data.length</code>
*/
- public static int linearSearch(final boolean z, final int fromIndex, final int toIndex, final boolean[] data) {
+ public static int linearSearch(final boolean z, final int fromIndex, final int toIndex, @NotNull final boolean[] data) {
for (int i = fromIndex; i < toIndex; i++) {
if (data[i] == z) {
return i;
@@ -357,7 +359,7 @@
* @return index of <var>n</var> in <var>data</var> or -1 if not found
* @throws ArrayIndexOutOfBoundsException in case <code><var>fromIndex</var> < 0</code> or <code><var>toIndex</var> >= data.length</code>
*/
- public static int linearSearch(final char c, final int fromIndex, final int toIndex, final char[] data) {
+ public static int linearSearch(final char c, final int fromIndex, final int toIndex, @NotNull final char[] data) {
for (int i = fromIndex; i < toIndex; i++) {
if (data[i] == c) {
return i;
@@ -374,7 +376,7 @@
* @return index of <var>n</var> in <var>data</var> or -1 if not found
* @throws ArrayIndexOutOfBoundsException in case <code><var>fromIndex</var> < 0</code> or <code><var>toIndex</var> >= data.length</code>
*/
- public static int linearSearch(final double d, final int fromIndex, final int toIndex, final double[] data) {
+ public static int linearSearch(final double d, final int fromIndex, final int toIndex, @NotNull final double[] data) {
for (int i = fromIndex; i < toIndex; i++) {
if (data[i] == d) {
return i;
@@ -391,7 +393,7 @@
* @return index of <var>n</var> in <var>data</var> or -1 if not found
* @throws ArrayIndexOutOfBoundsException in case <code><var>fromIndex</var> < 0</code> or <code><var>toIndex</var> >= data.length</code>
*/
- public static int linearSearch(final float f, final int fromIndex, final int toIndex, final float[] data) {
+ public static int linearSearch(final float f, final int fromIndex, final int toIndex, @NotNull final float[] data) {
for (int i = fromIndex; i < toIndex; i++) {
if (data[i] == f) {
return i;
@@ -408,7 +410,7 @@
* @return index of <var>n</var> in <var>data</var> or -1 if not found
* @throws ArrayIndexOutOfBoundsException in case <code><var>fromIndex</var> < 0</code> or <code><var>toIndex</var> >= data.length</code>
*/
- public static int linearSearch(final long l, final int fromIndex, final int toIndex, final long[] data) {
+ public static int linearSearch(final long l, final int fromIndex, final int toIndex, @NotNull final long[] data) {
for (int i = fromIndex; i < toIndex; i++) {
if (data[i] == l) {
return i;
@@ -425,7 +427,7 @@
* @return index of <var>n</var> in <var>data</var> or -1 if not found
* @throws ArrayIndexOutOfBoundsException in case <code><var>fromIndex</var> < 0</code> or <code><var>toIndex</var> >= data.length</code>
*/
- public static int linearSearch(final int n, final int fromIndex, final int toIndex, final int[] data) {
+ public static int linearSearch(final int n, final int fromIndex, final int toIndex, @NotNull final int[] data) {
for (int i = fromIndex; i < toIndex; i++) {
if (data[i] == n) {
return i;
@@ -442,7 +444,7 @@
* @return index of <var>n</var> in <var>data</var> or -1 if not found
* @throws ArrayIndexOutOfBoundsException in case <code><var>fromIndex</var> < 0</code> or <code><var>toIndex</var> >= data.length</code>
*/
- public static int linearSearch(final short s, final int fromIndex, final int toIndex, final short[] data) {
+ public static int linearSearch(final short s, final int fromIndex, final int toIndex, @NotNull final short[] data) {
for (int i = fromIndex; i < toIndex; i++) {
if (data[i] == s) {
return i;
@@ -459,7 +461,7 @@
* @return index of <var>n</var> in <var>data</var> or -1 if not found
* @throws ArrayIndexOutOfBoundsException in case <code><var>fromIndex</var> < 0</code> or <code><var>toIndex</var> >= data.length</code>
*/
- public static int linearSearch(final byte b, final int fromIndex, final int toIndex, final byte[] data) {
+ public static int linearSearch(final byte b, final int fromIndex, final int toIndex, @NotNull final byte[] data) {
for (int i = fromIndex; i < toIndex; i++) {
if (data[i] == b) {
return i;
@@ -473,7 +475,7 @@
* @param data array of Objects to perform linear search on
* @return index of <var>n</var> in <var>data</var> or -1 if not found
*/
- public static int linearIdentitySearch(final Object o, final Object[] data) {
+ public static int linearIdentitySearch(@Nullable final Object o, @NotNull final Object[] data) {
return linearIdentitySearch(o, 0, data.length, data);
}
@@ -486,7 +488,7 @@
* @throws ArrayIndexOutOfBoundsException in case <code><var>fromIndex</var> < 0</code> or <code><var>toIndex</var> >= data.length</code>
*/
@SuppressWarnings({"ObjectEquality"})
- public static int linearIdentitySearch(final Object o, final int fromIndex, final int toIndex, final Object[] data) {
+ public static int linearIdentitySearch(@Nullable final Object o, final int fromIndex, final int toIndex, @NotNull final Object[] data) {
for (int i = fromIndex; i < toIndex; i++) {
if (data[i] == o) {
return i;
@@ -500,7 +502,7 @@
* @param data array of Objects to perform linear search on
* @return index of <var>n</var> in <var>data</var> or -1 if not found
*/
- public static int linearEqualitySearch(final Object o, final Object[] data) {
+ public static int linearEqualitySearch(@Nullable final Object o, @NotNull final Object[] data) {
return linearEqualitySearch(o, 0, data.length, data);
}
@@ -512,7 +514,7 @@
* @return index of <var>n</var> in <var>data</var> or -1 if not found
* @throws ArrayIndexOutOfBoundsException in case <code><var>fromIndex</var> < 0</code> or <code><var>toIndex</var> >= data.length</code>
*/
- public static int linearEqualitySearch(final Object o, final int fromIndex, final int toIndex, final Object[] data) {
+ public static int linearEqualitySearch(@Nullable final Object o, final int fromIndex, final int toIndex, @NotNull final Object[] data) {
for (int i = fromIndex; i < toIndex; i++) {
if (o == null && data[i] == null || data[i].equals(o)) {
return i;
@@ -524,9 +526,10 @@
/** Perform a linear search on an array of Objects.
* @param o Object to find in <var>data</var>
* @param data array of Objects to perform linear search on
+ * @param comp Comparator for comparing objects
* @return index of <var>n</var> in <var>data</var> or -1 if not found
*/
- public static <T> int linearComparisonSearch(final T o, final T[] data, final Comparator<? super T> comp) {
+ public static <T> int linearComparisonSearch(@Nullable final T o, @NotNull final T[] data, @NotNull final Comparator<? super T> comp) {
return linearComparisonSearch(o, 0, data.length, data, comp);
}
@@ -535,10 +538,11 @@
* @param fromIndex start index within <var>data</var>
* @param toIndex end index within <var>data</var>
* @param data array of Objects to perform linear search on
+ * @param comp Comparator for comparing objects
* @return index of <var>n</var> in <var>data</var> or -1 if not found
* @throws ArrayIndexOutOfBoundsException in case <code><var>fromIndex</var> < 0</code> or <code><var>toIndex</var> >= data.length</code>
*/
- public static <T> int linearComparisonSearch(final T o, final int fromIndex, final int toIndex, final T[] data, final Comparator<? super T> comp) {
+ public static <T> int linearComparisonSearch(@Nullable final T o, final int fromIndex, final int toIndex, @NotNull final T[] data, @NotNull final Comparator<? super T> comp) {
for (int i = fromIndex; i < toIndex; i++) {
if (comp.compare(o, data[i]) == 0) {
return i;
@@ -550,7 +554,7 @@
/** Shuffle an array of booleans.
* @param array Array to shuffle
*/
- public static void shuffle(final boolean[] array) {
+ public static void shuffle(@NotNull final boolean[] array) {
shuffle(array, 0, array.length, RND);
}
@@ -558,7 +562,7 @@
* @param array Array to shuffle
* @param rnd Random Number Generator
*/
- public static void shuffle(final boolean[] array, final Random rnd) {
+ public static void shuffle(@NotNull final boolean[] array, @NotNull final Random rnd) {
shuffle(array, 0, array.length, rnd);
}
@@ -567,7 +571,7 @@
* @param fromIndex Start index to shuffle at (inclusive)
* @param toIndex End index to shuffle at (exclusive)
*/
- public static void shuffle(final boolean[] array, final int fromIndex, final int toIndex) {
+ public static void shuffle(@NotNull final boolean[] array, final int fromIndex, final int toIndex) {
shuffle(array, fromIndex, toIndex, RND);
}
@@ -577,7 +581,7 @@
* @param toIndex End index to shuffle at (exclusive)
* @param rnd Random number generator
*/
- public static void shuffle(final boolean[] array, final int fromIndex, final int toIndex, final Random rnd) {
+ public static void shuffle(@NotNull final boolean[] array, final int fromIndex, final int toIndex, @NotNull final Random rnd) {
for (int i = fromIndex; i < toIndex; i++) {
final int j = rnd.nextInt(toIndex - fromIndex) + fromIndex;
final boolean cache = array[i];
@@ -589,7 +593,7 @@
/** Shuffle an array of chars.
* @param array Array to shuffle
*/
- public static void shuffle(final char[] array) {
+ public static void shuffle(@NotNull final char[] array) {
shuffle(array, 0, array.length, RND);
}
@@ -597,7 +601,7 @@
* @param array Array to shuffle
* @param rnd Random Number Generator
*/
- public static void shuffle(final char[] array, final Random rnd) {
+ public static void shuffle(@NotNull final char[] array, @NotNull final Random rnd) {
shuffle(array, 0, array.length, rnd);
}
@@ -606,7 +610,7 @@
* @param fromIndex Start index to shuffle at (inclusive)
* @param toIndex End index to shuffle at (exclusive)
*/
- public static void shuffle(final char[] array, final int fromIndex, final int toIndex) {
+ public static void shuffle(@NotNull final char[] array, final int fromIndex, final int toIndex) {
shuffle(array, fromIndex, toIndex, RND);
}
@@ -616,7 +620,7 @@
* @param toIndex End index to shuffle at (exclusive)
* @param rnd Random number generator
*/
- public static void shuffle(final char[] array, final int fromIndex, final int toIndex, final Random rnd) {
+ public static void shuffle(@NotNull final char[] array, final int fromIndex, final int toIndex, @NotNull final Random rnd) {
for (int i = fromIndex; i < toIndex; i++) {
final int j = rnd.nextInt(toIndex - fromIndex) + fromIndex;
final char cache = array[i];
@@ -628,7 +632,7 @@
/** Shuffle an array of bytes.
* @param array Array to shuffle
*/
- public static void shuffle(final byte[] array) {
+ public static void shuffle(@NotNull final byte[] array) {
shuffle(array, 0, array.length, RND);
}
@@ -636,7 +640,7 @@
* @param array Array to shuffle
* @param rnd Random Number Generator
*/
- public static void shuffle(final byte[] array, final Random rnd) {
+ public static void shuffle(@NotNull final byte[] array, @NotNull final Random rnd) {
shuffle(array, 0, array.length, rnd);
}
@@ -645,7 +649,7 @@
* @param fromIndex Start index to shuffle at (inclusive)
* @param toIndex End index to shuffle at (exclusive)
*/
- public static void shuffle(final byte[] array, final int fromIndex, final int toIndex) {
+ public static void shuffle(@NotNull final byte[] array, final int fromIndex, final int toIndex) {
shuffle(array, fromIndex, toIndex, RND);
}
@@ -655,7 +659,7 @@
* @param toIndex End index to shuffle at (exclusive)
* @param rnd Random number generator
*/
- public static void shuffle(final byte[] array, final int fromIndex, final int toIndex, final Random rnd) {
+ public static void shuffle(@NotNull final byte[] array, final int fromIndex, final int toIndex, @NotNull final Random rnd) {
for (int i = fromIndex; i < toIndex; i++) {
final int j = rnd.nextInt(toIndex - fromIndex) + fromIndex;
final byte cache = array[i];
@@ -667,7 +671,7 @@
/** Shuffle an array of shorts.
* @param array Array to shuffle
*/
- public static void shuffle(final short[] array) {
+ public static void shuffle(@NotNull final short[] array) {
shuffle(array, 0, array.length, RND);
}
@@ -675,7 +679,7 @@
* @param array Array to shuffle
* @param rnd Random Number Generator
*/
- public static void shuffle(final short[] array, final Random rnd) {
+ public static void shuffle(@NotNull final short[] array, @NotNull final Random rnd) {
shuffle(array, 0, array.length, rnd);
}
@@ -684,7 +688,7 @@
* @param fromIndex Start index to shuffle at (inclusive)
* @param toIndex End index to shuffle at (exclusive)
*/
- public static void shuffle(final short[] array, final int fromIndex, final int toIndex) {
+ public static void shuffle(@NotNull final short[] array, final int fromIndex, final int toIndex) {
shuffle(array, fromIndex, toIndex, RND);
}
@@ -694,7 +698,7 @@
* @param toIndex End index to shuffle at (exclusive)
* @param rnd Random number generator
*/
- public static void shuffle(final short[] array, final int fromIndex, final int toIndex, final Random rnd) {
+ public static void shuffle(@NotNull final short[] array, final int fromIndex, final int toIndex, @NotNull final Random rnd) {
for (int i = fromIndex; i < toIndex; i++) {
final int j = rnd.nextInt(toIndex - fromIndex) + fromIndex;
final short cache = array[i];
@@ -706,7 +710,7 @@
/** Shuffle an array of ints.
* @param array Array to shuffle
*/
- public static void shuffle(final int[] array) {
+ public static void shuffle(@NotNull final int[] array) {
shuffle(array, 0, array.length, RND);
}
@@ -714,7 +718,7 @@
* @param array Array to shuffle
* @param rnd Random Number Generator
*/
- public static void shuffle(final int[] array, final Random rnd) {
+ public static void shuffle(@NotNull final int[] array, @NotNull final Random rnd) {
shuffle(array, 0, array.length, rnd);
}
@@ -723,7 +727,7 @@
* @param fromIndex Start index to shuffle at (inclusive)
* @param toIndex End index to shuffle at (exclusive)
*/
- public static void shuffle(final int[] array, final int fromIndex, final int toIndex) {
+ public static void shuffle(@NotNull final int[] array, final int fromIndex, final int toIndex) {
shuffle(array, fromIndex, toIndex, RND);
}
@@ -733,7 +737,7 @@
* @param toIndex End index to shuffle at (exclusive)
* @param rnd Random number generator
*/
- public static void shuffle(final int[] array, final int fromIndex, final int toIndex, final Random rnd) {
+ public static void shuffle(@NotNull final int[] array, final int fromIndex, final int toIndex, @NotNull final Random rnd) {
for (int i = fromIndex; i < toIndex; i++) {
final int j = rnd.nextInt(toIndex - fromIndex) + fromIndex;
final int cache = array[i];
@@ -745,7 +749,7 @@
/** Shuffle an array of longs.
* @param array Array to shuffle
*/
- public static void shuffle(final long[] array) {
+ public static void shuffle(@NotNull final long[] array) {
shuffle(array, 0, array.length, RND);
}
@@ -753,7 +757,7 @@
* @param array Array to shuffle
* @param rnd Random Number Generator
*/
- public static void shuffle(final long[] array, final Random rnd) {
+ public static void shuffle(@NotNull final long[] array, @NotNull final Random rnd) {
shuffle(array, 0, array.length, rnd);
}
@@ -762,7 +766,7 @@
* @param fromIndex Start index to shuffle at (inclusive)
* @param toIndex End index to shuffle at (exclusive)
*/
- public static void shuffle(final long[] array, final int fromIndex, final int toIndex) {
+ public static void shuffle(@NotNull final long[] array, final int fromIndex, final int toIndex) {
shuffle(array, fromIndex, toIndex, RND);
}
@@ -772,7 +776,7 @@
* @param toIndex End index to shuffle at (exclusive)
* @param rnd Random number generator
*/
- public static void shuffle(final long[] array, final int fromIndex, final int toIndex, final Random rnd) {
+ public static void shuffle(@NotNull final long[] array, final int fromIndex, final int toIndex, @NotNull final Random rnd) {
for (int i = fromIndex; i < toIndex; i++) {
final int j = rnd.nextInt(toIndex - fromIndex) + fromIndex;
final long cache = array[i];
@@ -784,7 +788,7 @@
/** Shuffle an array of floats.
* @param array Array to shuffle
*/
- public static void shuffle(final float[] array) {
+ public static void shuffle(@NotNull final float[] array) {
shuffle(array, 0, array.length, RND);
}
@@ -792,7 +796,7 @@
* @param array Array to shuffle
* @param rnd Random Number Generator
*/
- public static void shuffle(final float[] array, final Random rnd) {
+ public static void shuffle(@NotNull final float[] array, @NotNull final Random rnd) {
shuffle(array, 0, array.length, rnd);
}
@@ -801,7 +805,7 @@
* @param fromIndex Start index to shuffle at (inclusive)
* @param toIndex End index to shuffle at (exclusive)
*/
- public static void shuffle(final float[] array, final int fromIndex, final int toIndex) {
+ public static void shuffle(@NotNull final float[] array, final int fromIndex, final int toIndex) {
shuffle(array, fromIndex, toIndex, RND);
}
@@ -811,7 +815,7 @@
* @param toIndex End index to shuffle at (exclusive)
* @param rnd Random number generator
*/
- public static void shuffle(final float[] array, final int fromIndex, final int toIndex, final Random rnd) {
+ public static void shuffle(@NotNull final float[] array, final int fromIndex, final int toIndex, @NotNull final Random rnd) {
for (int i = fromIndex; i < toIndex; i++) {
final int j = rnd.nextInt(toIndex - fromIndex) + fromIndex;
final float cache = array[i];
@@ -823,7 +827,7 @@
/** Shuffle an array of doubles.
* @param array Array to shuffle
*/
- public static void shuffle(final double[] array) {
+ public static void shuffle(@NotNull final double[] array) {
shuffle(array, 0, array.length, RND);
}
@@ -831,7 +835,7 @@
* @param array Array to shuffle
* @param rnd Random Number Generator
*/
- public static void shuffle(final double[] array, final Random rnd) {
+ public static void shuffle(@NotNull final double[] array, @NotNull final Random rnd) {
shuffle(array, 0, array.length, rnd);
}
@@ -840,7 +844,7 @@
* @param fromIndex Start index to shuffle at (inclusive)
* @param toIndex End index to shuffle at (exclusive)
*/
- public static void shuffle(final double[] array, final int fromIndex, final int toIndex) {
+ public static void shuffle(@NotNull final double[] array, final int fromIndex, final int toIndex) {
shuffle(array, fromIndex, toIndex, RND);
}
@@ -850,7 +854,7 @@
* @param toIndex End index to shuffle at (exclusive)
* @param rnd Random number generator
*/
- public static void shuffle(final double[] array, final int fromIndex, final int toIndex, final Random rnd) {
+ public static void shuffle(@NotNull final double[] array, final int fromIndex, final int toIndex, @NotNull final Random rnd) {
for (int i = fromIndex; i < toIndex; i++) {
final int j = rnd.nextInt(toIndex - fromIndex) + fromIndex;
final double cache = array[i];
@@ -862,7 +866,7 @@
/** Shuffle an array of Objects.
* @param array Array to shuffle
*/
- public static void shuffle(final Object[] array) {
+ public static void shuffle(@NotNull final Object[] array) {
shuffle(array, 0, array.length, RND);
}
@@ -870,7 +874,7 @@
* @param array Array to shuffle
* @param rnd Random Number Generator
*/
- publi...
[truncated message content] |
|
From: <chr...@us...> - 2007-06-30 09:22:23
|
Revision: 465
http://svn.sourceforge.net/japi/?rev=465&view=rev
Author: christianhujer
Date: 2007-06-30 02:22:22 -0700 (Sat, 30 Jun 2007)
Log Message:
-----------
Fixed possible NPE in linearEqualitySearch().
Modified Paths:
--------------
libs/util/trunk/src/net/sf/japi/util/Arrays2.java
Modified: libs/util/trunk/src/net/sf/japi/util/Arrays2.java
===================================================================
--- libs/util/trunk/src/net/sf/japi/util/Arrays2.java 2007-06-30 09:14:17 UTC (rev 464)
+++ libs/util/trunk/src/net/sf/japi/util/Arrays2.java 2007-06-30 09:22:22 UTC (rev 465)
@@ -516,7 +516,7 @@
*/
public static int linearEqualitySearch(@Nullable final Object o, final int fromIndex, final int toIndex, @NotNull final Object[] data) {
for (int i = fromIndex; i < toIndex; i++) {
- if (o == null && data[i] == null || data[i].equals(o)) {
+ if (o == null && data[i] == null || o != null && o.equals(data[i]) || data[i].equals(o)) {
return i;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <chr...@us...> - 2007-08-15 16:40:42
|
Revision: 580
http://japi.svn.sourceforge.net/japi/?rev=580&view=rev
Author: christianhujer
Date: 2007-08-15 09:40:40 -0700 (Wed, 15 Aug 2007)
Log Message:
-----------
Allow null as array element in array concatenation.
Modified Paths:
--------------
libs/util/trunk/src/net/sf/japi/util/Arrays2.java
Modified: libs/util/trunk/src/net/sf/japi/util/Arrays2.java
===================================================================
--- libs/util/trunk/src/net/sf/japi/util/Arrays2.java 2007-08-15 16:11:00 UTC (rev 579)
+++ libs/util/trunk/src/net/sf/japi/util/Arrays2.java 2007-08-15 16:40:40 UTC (rev 580)
@@ -51,12 +51,19 @@
@NotNull public static double[] concat(@NotNull final double[]... a) {
int ns = 0;
for (final double[] anA : a) {
- ns += anA.length;
+ if (anA != null) {
+ ns += anA.length;
+ }
}
final double[] na = new double[ns];
- for (int i = 0, np = 0; i < a.length; np += a[i].length, i++) {
- System.arraycopy(a[i], 0, na, np, a[i].length);
+ int np = 0;
+ for (final double[] anA : a) {
+ if (anA != null) {
+ System.arraycopy(anA, 0, na, np, anA.length);
+ np += anA.length;
+ }
}
+ assert ns == np;
return na;
}
@@ -67,12 +74,19 @@
@NotNull public static float[] concat(@NotNull final float[]... a) {
int ns = 0;
for (final float[] anA : a) {
- ns += anA.length;
+ if (anA != null) {
+ ns += anA.length;
+ }
}
final float[] na = new float[ns];
- for (int i = 0, np = 0; i < a.length; np += a[i].length, i++) {
- System.arraycopy(a[i], 0, na, np, a[i].length);
+ int np = 0;
+ for (final float[] anA : a) {
+ if (anA != null) {
+ System.arraycopy(anA, 0, na, np, anA.length);
+ np += anA.length;
+ }
}
+ assert ns == np;
return na;
}
@@ -83,12 +97,17 @@
@NotNull public static long[] concat(@NotNull final long[]... a) {
int ns = 0;
for (final long[] anA : a) {
- ns += anA.length;
+ if (anA != null) {
+ ns += anA.length;
+ }
}
final long[] na = new long[ns];
- for (int i = 0, np = 0; i < a.length; np += a[i].length, i++) {
- System.arraycopy(a[i], 0, na, np, a[i].length);
+ int np = 0;
+ for (final long[] anA : a) {
+ System.arraycopy(anA, 0, na, np, anA.length);
+ np += anA.length;
}
+ assert ns == np;
return na;
}
@@ -99,12 +118,17 @@
@NotNull public static int[] concat(@NotNull final int[]... a) {
int ns = 0;
for (final int[] anA : a) {
- ns += anA.length;
+ if (anA != null) {
+ ns += anA.length;
+ }
}
final int[] na = new int[ns];
- for (int i = 0, np = 0; i < a.length; np += a[i].length, i++) {
- System.arraycopy(a[i], 0, na, np, a[i].length);
+ int np = 0;
+ for (final int[] anA : a) {
+ System.arraycopy(anA, 0, na, np, anA.length);
+ np += anA.length;
}
+ assert ns == np;
return na;
}
@@ -115,12 +139,17 @@
@NotNull public static short[] concat(@NotNull final short[]... a) {
int ns = 0;
for (final short[] anA : a) {
- ns += anA.length;
+ if (anA != null) {
+ ns += anA.length;
+ }
}
final short[] na = new short[ns];
- for (int i = 0, np = 0; i < a.length; np += a[i].length, i++) {
- System.arraycopy(a[i], 0, na, np, a[i].length);
+ int np = 0;
+ for (final short[] anA : a) {
+ System.arraycopy(anA, 0, na, np, anA.length);
+ np += anA.length;
}
+ assert ns == np;
return na;
}
@@ -131,12 +160,17 @@
@NotNull public static char[] concat(@NotNull final char[]... a) {
int ns = 0;
for (final char[] anA : a) {
- ns += anA.length;
+ if (anA != null) {
+ ns += anA.length;
+ }
}
final char[] na = new char[ns];
- for (int i = 0, np = 0; i < a.length; np += a[i].length, i++) {
- System.arraycopy(a[i], 0, na, np, a[i].length);
+ int np = 0;
+ for (final char[] anA : a) {
+ System.arraycopy(anA, 0, na, np, anA.length);
+ np += anA.length;
}
+ assert ns == np;
return na;
}
@@ -147,12 +181,17 @@
@NotNull public static byte[] concat(@NotNull final byte[]... a) {
int ns = 0;
for (final byte[] anA : a) {
- ns += anA.length;
+ if (anA != null) {
+ ns += anA.length;
+ }
}
final byte[] na = new byte[ns];
- for (int i = 0, np = 0; i < a.length; np += a[i].length, i++) {
- System.arraycopy(a[i], 0, na, np, a[i].length);
+ int np = 0;
+ for (final byte[] anA : a) {
+ System.arraycopy(anA, 0, na, np, anA.length);
+ np += anA.length;
}
+ assert ns == np;
return na;
}
@@ -163,12 +202,17 @@
@NotNull public static boolean[] concat(@NotNull final boolean[]... a) {
int ns = 0;
for (final boolean[] anA : a) {
- ns += anA.length;
+ if (anA != null) {
+ ns += anA.length;
+ }
}
final boolean[] na = new boolean[ns];
- for (int i = 0, np = 0; i < a.length; np += a[i].length, i++) {
- System.arraycopy(a[i], 0, na, np, a[i].length);
+ int np = 0;
+ for (final boolean[] anA : a) {
+ System.arraycopy(anA, 0, na, np, anA.length);
+ np += anA.length;
}
+ assert ns == np;
return na;
}
@@ -179,13 +223,18 @@
@NotNull public static <T> T[] concat(@NotNull final T[]... a) {
int ns = 0;
for (final T[] anA : a) {
- ns += anA.length;
+ if (anA != null) {
+ ns += anA.length;
+ }
}
//noinspection unchecked
final T[] na = (T[]) Array.newInstance(a[0].getClass().getComponentType(), ns);
- for (int i = 0, np = 0; i < a.length; np += a[i].length, i++) {
- System.arraycopy(a[i], 0, na, np, a[i].length);
+ int np = 0;
+ for (final T[] anA : a) {
+ System.arraycopy(anA, 0, na, np, anA.length);
+ np += anA.length;
}
+ assert ns == np;
return na;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|