将数组_块从php转换为java
我的php代码是:将数组_块从php转换为java,java,php,Java,Php,我的php代码是: $splitArray = array_chunk($theArray,ceil(count($theArray) / 2),true); php的array\u chunk函数将数组拆分为指定大小的块。您可以在Java中通过使用Arrays.copyOfRange并传入起点和终点来实现这一点。以下是一些示例代码: /** * Chunks an array into size large chunks. * The last chunk may contain le
$splitArray = array_chunk($theArray,ceil(count($theArray) / 2),true);
php的
array\u chunk
函数将数组拆分为指定大小的块。您可以在Java中通过使用Arrays.copyOfRange
并传入起点和终点来实现这一点。以下是一些示例代码:
/**
* Chunks an array into size large chunks.
* The last chunk may contain less than size elements.
* @param <T>
* @param arr The array to work on
* @param size The size of each chunk
* @return a list of arrays
*/
public static <T> List<T[]> chunk(T[] arr, int size) {
if (size <= 0)
throw new IllegalArgumentException("Size must be > 0 : " + size);
List<T[]> result = new ArrayList<T[]>();
int from = 0;
int to = size >= arr.length ? arr.length : size;
while (from < arr.length) {
T[] subArray = Arrays.copyOfRange(arr, from, to);
from = to;
to += size;
if (to > arr.length) {
to = arr.length;
}
result.add(subArray);
}
return result;
}
php的
array\u chunk
函数将数组拆分为指定大小的块。您可以在Java中通过使用Arrays.copyOfRange
并传入起点和终点来实现这一点。以下是一些示例代码:
/**
* Chunks an array into size large chunks.
* The last chunk may contain less than size elements.
* @param <T>
* @param arr The array to work on
* @param size The size of each chunk
* @return a list of arrays
*/
public static <T> List<T[]> chunk(T[] arr, int size) {
if (size <= 0)
throw new IllegalArgumentException("Size must be > 0 : " + size);
List<T[]> result = new ArrayList<T[]>();
int from = 0;
int to = size >= arr.length ? arr.length : size;
while (from < arr.length) {
T[] subArray = Arrays.copyOfRange(arr, from, to);
from = to;
to += size;
if (to > arr.length) {
to = arr.length;
}
result.add(subArray);
}
return result;
}
Java只支持数字数组,所以您只能对没有间隙的数字数组使用。如果你需要一个解决方案来处理非数值(即地图),请发回,我会研究它
public void testMethod() {
Object[] array={"one","two","three","four","five"};
Object[][] chunkedArray = array_chunk(array,2);
System.out.println(Arrays.deepToString(chunkedArray));
}
public Object[][] array_chunk(Object[] array,int size/*,FALSE Arrays are always numeric in java*/){
Object[][] target= new Object[(array.length + size -1) / size][];
for (int i = 0; i < target.length; i++) {
int innerArraySize=array.length-i*size>=size?size:array.length-i*size;
Object[] inner=new Object[innerArraySize];
System.arraycopy(array, i*size, inner, 0, innerArraySize);
target[i]=inner;
}
return target;
}
public void testMethod(){
Object[]数组={“一”、“二”、“三”、“四”、“五”};
对象[][]chunkedArray=array_chunk(数组,2);
System.out.println(array.deepToString(chunkedArray));
}
公共对象[][]数组\u块(对象[]数组,int size/*,假数组在java*/中始终为数字){
对象[][]目标=新对象[(array.length+size-1)/size]];
for(int i=0;i=size?size:array.length-i*size;
对象[]内部=新对象[innerArraySize];
System.arraycopy(数组,i*大小,内部,0,内部数组化);
目标[i]=内部;
}
回报目标;
}
Java只支持数字数组,因此您只能对没有间隙的数字数组执行此操作。如果你需要一个解决方案来处理非数值(即地图),请发回,我会研究它
public void testMethod() {
Object[] array={"one","two","three","four","five"};
Object[][] chunkedArray = array_chunk(array,2);
System.out.println(Arrays.deepToString(chunkedArray));
}
public Object[][] array_chunk(Object[] array,int size/*,FALSE Arrays are always numeric in java*/){
Object[][] target= new Object[(array.length + size -1) / size][];
for (int i = 0; i < target.length; i++) {
int innerArraySize=array.length-i*size>=size?size:array.length-i*size;
Object[] inner=new Object[innerArraySize];
System.arraycopy(array, i*size, inner, 0, innerArraySize);
target[i]=inner;
}
return target;
}
public void testMethod(){
Object[]数组={“一”、“二”、“三”、“四”、“五”};
对象[][]chunkedArray=array_chunk(数组,2);
System.out.println(array.deepToString(chunkedArray));
}
公共对象[][]数组\u块(对象[]数组,int size/*,假数组在java*/中始终为数字){
对象[][]目标=新对象[(array.length+size-1)/size]];
for(int i=0;i=size?size:array.length-i*size;
对象[]内部=新对象[innerArraySize];
System.arraycopy(数组,i*大小,内部,0,内部数组化);
目标[i]=内部;
}
回报目标;
}
。你的Java代码是什么?你试过什么吗?我对此一无所知:)我不是Java程序员。你想用数组块做什么?我想这样做:$splitArray=array\u chunk($theArray,ceil(count($theArray)/2),true);壮观的你的Java代码是什么?你试过什么吗?我对此一无所知:)我不是Java程序员。你想用数组块做什么?我想这样做:$splitArray=array\u chunk($theArray,ceil(count($theArray)/2),true);类型为ArrayS的方法copyOfRange(T[],int,int)未定义,您使用的是哪个版本的java?它是被定义的。请参阅此处的文档:对于类型ArrayS,方法copyOfRange(T[],int,int)未定义您使用的java版本是什么?它是被定义的。请参见此处的文档: