【Java开源代码栏目提醒】:本文主要为网学会员提供ArrayHelper.java,希望对需要ArrayHelper.java网友有所帮助,学习一下!
//$Id: ArrayHelper.java 7546 2005-07-19 18:17:15Z oneovthafew $
package org.hibernate.util;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.hibernate.LockMode;
import org.hibernate.type.Type;
public final class ArrayHelper {
/*public static boolean contains(Object[] array, Object object) {
for ( int i=0; i<array.length; i++ ) {
if ( array[i].equals(object) ) return true;
}
return false;
}*/
public static int indexOf(Object[] array, Object object) {
for ( int i=0; i<array.length; i++ ) {
if ( array[i].equals(object) ) return i;
}
return -1;
}
/*public static Object[] clone(Class elementClass, Object[] array) {
Object[] result = (Object[]) Array.newInstance( elementClass, array.length );
System.arraycopy(array, 0, result, 0, array.length);
return result;
}*/
public static String[] toStringArray(Object[] objects) {
int length=objects.length;
String[] result = new String[length];
for (int i=0; i<length; i++) {
result[i] = objects[i].toString();
}
return result;
}
public static String[] fillArray(String value, int length) {
String[] result = new String[length];
Arrays.fill(result, value);
return result;
}
public static int[] fillArray(int value, int length) {
int[] result = new int[length];
Arrays.fill(result, value);
return result;
}
public static LockMode[] fillArray(LockMode lockMode, int length) {
LockMode[] array = new LockMode[length];
Arrays.fill(array, lockMode);
return array;
}
public static String[] toStringArray(Collection coll) {
return (String[]) coll.toArray(EMPTY_STRING_ARRAY);
}
public static String[][] to2DStringArray(Collection coll) {
return (String[][]) coll.toArray( new String[ coll.size() ][] );
}
public static int[][] to2DIntArray(Collection coll) {
return (int[][]) coll.toArray( new int[ coll.size() ][] );
}
public static Type[] toTypeArray(Collection coll) {
return (Type[]) coll.toArray(EMPTY_TYPE_ARRAY);
}
public static int[] toIntArray(Collection coll) {
Iterator iter = coll.iterator();
int[] arr = new int[ coll.size() ];
int i=0;
while( iter.hasNext() ) {
arr[i++] = ( (Integer) iter.next() ).intValue();
}
return arr;
}
public static boolean[] toBooleanArray(Collection coll) {
Iterator iter = coll.iterator();
boolean[] arr = new boolean[ coll.size() ];
int i=0;
while( iter.hasNext() ) {
arr[i++] = ( (Boolean) iter.next() ).booleanValue();
}
return arr;
}
public static Object[] typecast(Object[] array, Object[] to) {
return java.util.Arrays.asList(array).toArray(to);
}
//Arrays.asList doesn't do primitive arrays
public static List toList(Object array) {
if ( array instanceof Object[] ) return Arrays.asList( (Object[]) array ); //faster?
int size = Array.getLength(array);
ArrayList list = new ArrayList(size);
for (int i=0; i<size; i++) {
list.add( Array.get(array, i) );
}
return list;
}
public static String[] slice(String[] strings, int begin, int length) {
String[] result = new String[length];
for ( int i=0; i<length; i++ ) {
result[i] = strings[begin+i];
}
return result;
}
public static Object[] slice(Object[] objects, int begin, int length) {
Object[] result = new Object[length];
for ( int i=0; i<length; i++ ) {
result[i] = objects[begin+i];
}
return result;
}
public static List toList(Iterator iter) {
List list = new ArrayList();
while ( iter.hasNext() ) {
list.add( iter.next() );
}
return list;
}
public static String[] join(String[] x, String[] y) {
String[] result = new String[ x.length + y.length ];
for ( int i=0; i<x.length; i++ ) result[i] = x[i];
for ( int i=0; i<y.length; i++ ) result[i+x.length] = y[i];
return result;
}
public static String[] join(String[] x, String[] y, boolean[] use) {
String[] result = new String[ x.length + countTrue(use) ];
for ( int i=0; i<x.length; i++ ) result[i] = x[i];
int k = x.length;
for ( int i=0; i<y.length; i++ ) {
if ( use[i] ) result[k++] = y[i];
}
return result;
}
public static int[] join(int[] x, int[] y) {
int[] result = new int[ x.length + y.length ];
for ( int i=0; i<x.length; i++ ) result[i] = x[i];
for ( int i=0; i<y.length; i++ ) result[i+x.length] = y[i];
return result;
}
public static final boolean[] TRUE = { true };
public static final boolean[] FALSE = { false };