java数组长度的设置
求解下列代码问号的地方该填什么?importjava.util.Scanner;publicclassTest{publicstaticvoidmain(String[]...
求解下列代码问号的地方该填什么?
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner x=new Scanner(System.in);
System.out.println("请输入班级数量");
int banshu=x.nextInt();
int[] renshu=new int[banshu];
String[][] name=new String[banshu][?];
for(int i=0;i<banshu;i++){
System.out.println("请输入第"+(i+1)+"班人数");
renshu[i]=x.nextInt();
}
for(int i=0;i<banshu;i++){
for(int j=0;j<?;j++){
System.out.println("请输入第"+(i+1)+"班第"+(j+1)+"个人的名字");
name[i][j]=x.next();
}
}
for(int i=0;i<banshu;i++){
for(int j=0;j<?;j++){
System.out.println(name[i][j]);
}
}
}
}
我想知道如何把renshu[i]这个数组的值作为长度赋予给另一个数组 展开
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner x=new Scanner(System.in);
System.out.println("请输入班级数量");
int banshu=x.nextInt();
int[] renshu=new int[banshu];
String[][] name=new String[banshu][?];
for(int i=0;i<banshu;i++){
System.out.println("请输入第"+(i+1)+"班人数");
renshu[i]=x.nextInt();
}
for(int i=0;i<banshu;i++){
for(int j=0;j<?;j++){
System.out.println("请输入第"+(i+1)+"班第"+(j+1)+"个人的名字");
name[i][j]=x.next();
}
}
for(int i=0;i<banshu;i++){
for(int j=0;j<?;j++){
System.out.println(name[i][j]);
}
}
}
}
我想知道如何把renshu[i]这个数组的值作为长度赋予给另一个数组 展开
2个回答
展开全部
在Java中,数组不能动态重设大小。一个可替代方法是使用java.util.ArrayList (或者java.util.Vector)代替使用原始数组(array)。另一种解决方案是用一个不同大小的数组重设数组,将旧数组内容拷贝到新的数组。
/** * 使用一个新大小重设数组,并拷贝旧数组的内容到新数组 * @param oldArray 旧数组被重设 * @param newSize 新数组大小 * @return 返回带同样内容的新数组 */privatestatic Object resizeArray (Object oldArray, int newSize){ int oldSize = java.lang.reflect.Array.getLength(oldArray); Class elementType = oldArray.getClass().getComponentType(); Object newArray = java.lang.reflect.Array.newInstance( elementType,newSize); int preserveLength = Math.min(oldSize,newSize); if (preserveLength >0) System.arraycopy (oldArray,0,newArray,0,preserveLength); return newArray; }// resizeArray()测试用例publicstaticvoid main (String[] args) { int[] a = {1,2,3}; a = (int[])resizeArray(a,5); a[3] =4; a[4] =5; for (int i=0; i
以上回答你满意么?
/** * 使用一个新大小重设数组,并拷贝旧数组的内容到新数组 * @param oldArray 旧数组被重设 * @param newSize 新数组大小 * @return 返回带同样内容的新数组 */privatestatic Object resizeArray (Object oldArray, int newSize){ int oldSize = java.lang.reflect.Array.getLength(oldArray); Class elementType = oldArray.getClass().getComponentType(); Object newArray = java.lang.reflect.Array.newInstance( elementType,newSize); int preserveLength = Math.min(oldSize,newSize); if (preserveLength >0) System.arraycopy (oldArray,0,newArray,0,preserveLength); return newArray; }// resizeArray()测试用例publicstaticvoid main (String[] args) { int[] a = {1,2,3}; a = (int[])resizeArray(a,5); a[3] =4; a[4] =5; for (int i=0; i
以上回答你满意么?
追问
我不是想改变数组长度,我只是想知道如何把一个数组的值作为长度赋予给另一个数组。
推荐于2017-05-21
展开全部
public static void main(String[] args){
Scanner x=new Scanner(System.in);
System.out.println("请输入班级数量");
int banshu=x.nextInt();
String[][] name=new String[banshu][];//
for(int i=0;i<banshu;i++){
System.out.println("请输入第"+(i+1)+"班人数");
int renshu=x.nextInt();
name[i]=new String[renshu];//
}
for(int i=0;i<banshu;i++){
for(int j=0;j<?;j++){
System.out.println("请输入第"+(i+1)+"班第"+(j+1)+"个人的名字");
name[i][j]=x.next();
}
}
for(int i=0;i<banshu;i++){
for(int j=0;j<name[i].length;j++){
System.out.println(name[i][j]);
}
}
}
分两步new即可
追问
看不懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询