Java 如何将整数数组动态拆分为n个整数数组?
这里我有一个整数数组,它包含Java 如何将整数数组动态拆分为n个整数数组?,java,arrays,Java,Arrays,这里我有一个整数数组,它包含81值,所以我需要存储每个数组的9值,我需要得到9个数组。例如:array1从1到9和array2从10到18和array3从19到27诸如此类。有谁能帮我得到这个值吗 public class demo { public static void main(String[] args) { int num = 81; int numArray = num / 9; int[] input = new int[num];
81
值,所以我需要存储每个数组的9
值,我需要得到9个数组。例如:array1
从1到9
和array2
从10到18
和array3
从19到27
诸如此类。有谁能帮我得到这个值吗
public class demo {
public static void main(String[] args) {
int num = 81;
int numArray = num / 9;
int[] input = new int[num];
for (int i = 0; i < num; i++) {
input[i] = i + 1;
}
for (int j = 0; j < input.length; j++) {
System.out.println(input[j]);
}
}
}
公共类演示{
公共静态void main(字符串[]args){
int num=81;
int numArray=num/9;
int[]输入=新的int[num];
for(int i=0;i
如何获得期望的结果?您可以使用:
我刚刚注意到您需要9个部分,您可以轻松地将其放入循环中,并使用arraycopy
publicstaticvoidmain(String[]args){
public static void main(String[] args) {
int num = 85;
int limit = 5;
int index = 0;
int extra = 0;
int finalArrayIndex = 0;
int[] innerArray = null;
int[] input = new int[num];
boolean isEnd = false;
if (num % limit > 0) {
extra = 1;
}
int[][] finalArray = new int[(num / limit) + extra][limit];
for (int i = 0; i < input.length; i = i + (limit)) {
innerArray = new int[limit];
for (int j = 0; j < limit; j++) {
innerArray[j] = input[index++];
if (index >= input.length) {
isEnd = true;
break;
}
}
finalArray[finalArrayIndex++] = innerArray;
if (isEnd) {
break;
}
}
// just for test
for (int k = 0; k < finalArray.length; k++) {
for (int l = 0; l < finalArray[k].length; l++) {
System.out.println("finalArray[" + k + "]" + "[" + l + "] : "
+ finalArray[k][l]);
}
}
}
int num=85;
整数极限=5;
int指数=0;
int extra=0;
int finalArrayIndex=0;
int[]innerArray=null;
int[]输入=新的int[num];
布尔isEnd=false;
如果(数量百分比限制>0){
额外=1;
}
int[]finalArray=新int[(数量/限制)+额外][限制];
对于(int i=0;i=input.length){
isEnd=真;
打破
}
}
finalArray[finalArrayIndex++]=innerArray;
如果(i结束){
打破
}
}
//只是为了测试
对于(int k=0;k
这是动态解决方案,您可以更改num
和limit
变量的值。我希望这将对您有所帮助:)Java小提琴链接:我的建议是使用 您可以按照以下步骤操作
列表中(ArrayList
)
subList()
列表
转换为数组
List<Integer> fullList=new ArrayList<>();
List<Integer> list1=fullList.subList(0,8); // first 9 elements
Integer[] bar = list1.toArray(new Integer[list1.size()]);
List fullList=new ArrayList();
List list1=fullList.subList(0,8);//前9项要素
整数[]条=list1.toArray(新整数[list1.size()]);
你想展示什么??您甚至没有使用Numaray,所以为什么要创建它,您的问题不是很清楚使用System.arraycopy或Arrays类的某个方法。@Mohit_Bhasi,我需要创建9个数组,每个数组包含9个值。@khanam感谢您的澄清,肯定会给出答案:)Maroun,是否可以根据给定的输入动态创建数组,例如:num=81,这样我就可以创建9个数组。是的,使用循环。想想数组的
ArrayList
之类的东西。Maroun,你能指导我吗。Ruchira Gayan Ranawe,不使用任何内置函数,这是不可能的吗?@khanam不。你不需要使用内置方法。你可以写一段代码来做这件事。我建议这样做,因为这样做不太容易。@你能帮我得到我想要的输出吗。@khanam你能不能把你想做的事情和你迄今为止尝试过的事情都写出来?你可以通过skype或电子邮件联系我,因为你还不能在stackOverFlow中使用聊天。Ruchira Gayan Ranawera,检查此链接
List<Integer> fullList=new ArrayList<>();
List<Integer> list1=fullList.subList(0,8); // first 9 elements
Integer[] bar = list1.toArray(new Integer[list1.size()]);