⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arrayhelper.java

📁 一个Java持久层类库
💻 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 };	private ArrayHelper() {}	public static String toString( Object[] array ) {		StringBuffer sb = new StringBuffer();		sb.append("[");		for (int i = 0; i < array.length; i++) {			sb.append( array[i] );			if( i<array.length-1 ) sb.append(",");		}		sb.append("]");		return sb.toString();	}	public static boolean isAllNegative(int[] array) {		for ( int i=0; i<array.length; i++ ) {			if ( array[i] >=0 ) return false;		}		return true;	}	public static boolean isAllTrue(boolean[] array) {		for ( int i=0; i<array.length; i++ ) {			if ( !array[i] ) return false;		}		return true;	}	public static int countTrue(boolean[] array) {		int result=0;		for ( int i=0; i<array.length; i++ ) {			if ( array[i] ) result++;		}		return result;	}	/*public static int countFalse(boolean[] array) {		int result=0;		for ( int i=0; i<array.length; i++ ) {			if ( !array[i] ) result++;		}		return result;	}*/	public static boolean isAllFalse(boolean[] array) {		for ( int i=0; i<array.length; i++ ) {			if ( array[i] ) return false;		}		return true;	}	public static void addAll(Collection collection, Object[] array) {		for ( int i=0; i<array.length; i++ ) {			collection.add( array[i] );		}	}	public static final String[] EMPTY_STRING_ARRAY = {};	public static final int[] EMPTY_INT_ARRAY = {};	public static final boolean[] EMPTY_BOOLEAN_ARRAY = {};	public static final Class[] EMPTY_CLASS_ARRAY = {};	public static final Object[] EMPTY_OBJECT_ARRAY = {};	public static final Type[] EMPTY_TYPE_ARRAY = {};		public static int[] getBatchSizes(int maxBatchSize) {		int batchSize = maxBatchSize;		int n=1;		while ( batchSize>1 ) {			batchSize = getNextBatchSize(batchSize);			n++;		}		int[] result = new int[n];		batchSize = maxBatchSize;		for ( int i=0; i<n; i++ ) {			result[i] = batchSize;			batchSize = getNextBatchSize(batchSize);		}		return result;	}		private static int getNextBatchSize(int batchSize) {		if (batchSize<=10) {			return batchSize-1; //allow 9,8,7,6,5,4,3,2,1		}		else if (batchSize/2 < 10) {			return 10;		}		else {			return batchSize / 2;		}	}	private static int SEED = 23;	private static int PRIME_NUMER = 37;	/**	 * calculate the array hash (only the first level)	 */	public static int hash(Object[] array) {		int length = array.length;		int seed = SEED;		for (int index = 0 ; index < length ; index++) {			seed = hash( seed, array[index] == null ? 0 : array[index].hashCode() );		}		return seed;	}	/**	 * calculate the array hash (only the first level)	 */	public static int hash(char[] array) {		int length = array.length;		int seed = SEED;		for (int index = 0 ; index < length ; index++) {			seed = hash( seed, (int) array[index] ) ;		}		return seed;	}	/**	 * calculate the array hash (only the first level)	 */	public static int hash(byte[] bytes) {		int length = bytes.length;		int seed = SEED;		for (int index = 0 ; index < length ; index++) {			seed = hash( seed, (int) bytes[index] ) ;		}		return seed;	}	private static int hash(int seed, int i) {		return PRIME_NUMER * seed + i;	}	/**	 * Compare 2 arrays only at the first level	 */	public static boolean isEquals(Object[] o1, Object[] o2) {		if (o1 == o2) return true;		if (o1 == null || o2 == null) return false;		int length = o1.length;		if (length != o2.length) return false;		for (int index = 0 ; index < length ; index++) {			if ( ! o1[index].equals( o2[index] ) ) return false;		}        return true;	}	/**	 * Compare 2 arrays only at the first level	 */	public static boolean isEquals(char[] o1, char[] o2) {		if (o1 == o2) return true;		if (o1 == null || o2 == null) return false;		int length = o1.length;		if (length != o2.length) return false;		for (int index = 0 ; index < length ; index++) {			if ( ! ( o1[index] == o2[index] ) ) return false;		}        return true;	}	/**	 * Compare 2 arrays only at the first level	 */	public static boolean isEquals(byte[] b1, byte[] b2) {		if (b1 == b2) return true;		if (b1 == null || b2 == null) return false;		int length = b1.length;		if (length != b2.length) return false;		for (int index = 0 ; index < length ; index++) {			if ( ! ( b1[index] == b2[index] ) ) return false;		}        return true;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -