当前位置: 代码迷 >> PHP >> java代码转PHP代码
  详细解决方案

java代码转PHP代码

热度:78   发布时间:2016-04-28 22:55:46.0
java代码转PHP代码,高手进
import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class ArrayAssemble {	@SuppressWarnings("unchecked")	public static void main(String[] args) {		String[] arrOfInt = { "红", "橙", "黄","黑" };		@SuppressWarnings("unused")		String[] arrOfChar1 = { "L", "XL" };		@SuppressWarnings("unused")		String[] arrOfChar2 = { "麻", "晴纶","看" };		String[] arrOfChar3 = { "奎", "康" };		 String[] arrOfStr = { "lmy", "lyb", "mz", "yx" };		System.out.println("以下是组合后的数组");//		Object[][] objectsArrays = assembleArraysToPlanerArray(new Object[][] {arrOfInt, arrOfChar1, arrOfChar2, arrOfChar3,arrOfStr });		Object[][] objectsArrays = assembleArraysToPlanerArray(new Object[][] { arrOfChar1,arrOfChar2, arrOfChar3 });//		Object[][] objectsArrays = assembleArraysToPlanerArray(new Object[][] { arrOfChar1,arrOfChar2 });		int i = 0;		for (Object[] objArrays : objectsArrays) {			i++;			System.out.println(i + "=" + Arrays.toString(objArrays));		}	}	// 方法一的辅助方法:将一个数组类型或对象类型的List与数组组合,并返回List	@SuppressWarnings("unchecked")	public static List assembleArrayToList(List aList, Object[] array) {		List arrList = new ArrayList();		// 遍历aList,将array与aList进行组合		for (int i = 0; i < aList.size(); i++) {			Object obj = aList.get(i);			// 检查aList的元素是否是数组类型的,如果不是,则直接产生组合列表			if (obj instanceof Object[]) {				Object[] listArr = (Object[]) obj;				// 对数组类型的aList元素与array进行组合				for (int k = 0; k < array.length; k++) {					Object[] newListArr = new Object[listArr.length + 1];					for (int j = 0; j < listArr.length; j++) {						newListArr[j] = listArr[j];					}					newListArr[listArr.length] = array[k];					arrList.add(newListArr);				}			} else {				// 对非数组类型的aList元素与array进行组合				for (int j = 0; j < array.length; j++) {					Object[] arrObj = { aList.get(i), array[j] };					arrList.add(arrObj);				}			}		}		return arrList;	}	// 方法二:使用二维数组参数方法返回组合的二维数组类型,并使用了递归	@SuppressWarnings("unchecked")	public static Object[][] assembleArraysToPlanerArray(Object[][] objectArrays) {		if (objectArrays.length == 2) {			Object[] assembledArray = objectArrays[0];			Object[] array = objectArrays[1];			return assembleArrayToArray(assembledArray, array);		} else if (objectArrays.length <= 1) {			return objectArrays;		} else {			Object[] objArray = objectArrays[objectArrays.length - 1];			objectArrays = Arrays.copyOf(objectArrays, objectArrays.length - 1);			return assembleArrayToArray(assembleArraysToPlanerArray(objectArrays), objArray);		}	}	// 方法二的辅助方法:将一个数组类型或二维数组类型与数组组合,并返回二维数组	public static Object[][] assembleArrayToArray(Object[] assembledArray,Object[] array) {		int lenAssArray = assembledArray.length;		int lenArray = array.length;		Object[][] objArrays = new Object[lenAssArray * lenArray][];		for (int i = 0; i < lenAssArray; i++) {			Object obj = assembledArray[i];			if (obj instanceof Object[]) {				Object[] objArr = (Object[]) obj;				int lenObjArr = objArr.length;				for (int k = 0; k < lenArray; k++) {					// 复制objArr数组到newListArr数组,并将其长度加一					Object[] newListArr = Arrays.copyOf(objArr, lenObjArr + 1);					// 将array数组的第k+1元素赋值给newListArr数组最后的元素,并将newListArr赋值给objArrays数组的第k+1个元素					newListArr[lenObjArr] = array[k];					objArrays[lenArray * i + k] = newListArr;				}			} else {				for (int j = 0; j < lenArray; j++) {					Object[] newObjArray = { obj, array[j] };					objArrays[lenArray * i + j] = newObjArray;				}			}		}		return objArrays;	}}
  相关解决方案