import java.util.Scanner;
public class AssignTaskDemo {
public static void main(String[] args) {
int m;
int n;
int[][] cost;
Scanner input =new Scanner(System.in);
m=input.nextInt();
n=input.nextInt();
cost=new int[m][n];
System.out.print(cost[m-1][n-1]); }

}mn取决于外部事件,这样子不就算是动态决定数组大小了吗?请大牛指点迷津,不胜感激!

解决方案 »

  1.   

    楼主你在new这个数组的时候,已经指定了m,n的大小,而这个数组对象创建后,长度就不可改变了。当然,在创建数组分配内存之前能接受维参数变量,比C要方便一些,但如果事先都不知道数组有多大, 用的时候只管往里放东西就行,Java中也是不行的。动态数组指的是一种在使用中可以任意伸缩数组长度的数组对象,例如ArrayList。
      

  2.   

    其实我个人觉得动态数组是不存在的,从构建对象开始说来的话,jvm在给创建对象之前先会确定对象的大小,这样才好给对象分配空间,当然数组也是一样,jvm会根据你需要创建的数组的大小从而给你分配一定大小的内存空间,但是这部分内存空间就已经固定了,是不会改变的了。
      

  3.   

    不算是!
    int m;
    int n;
    int[][] cost;
    //Scanner input = new Scanner(System.in);
    //m = input.nextInt();
    //n = input.nextInt();
    cost = new int[m][n];
    System.out.print(cost[m - 1][n - 1]);
    注掉后编译不通过。
      

  4.   

    同意8楼的意见 要实现动态数组,最好使用List 这种问题没必要深究的