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]这个数组的值作为长度赋予给另一个数组
展开
 我来答
bcmo451
2014-07-02 · 超过53用户采纳过TA的回答
知道答主
回答量:127
采纳率:0%
帮助的人:136万
展开全部
在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
以上回答你满意么?
追问
我不是想改变数组长度,我只是想知道如何把一个数组的值作为长度赋予给另一个数组。
匿名用户
推荐于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即可

追问
看不懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式