为java 2维动态数组添加值

时间:2012-02-02 18:28:58

标签: java jsp java-ee

我怎么可能为二维动态数组添加一个值?

String emp[][] = {
{"001","Superman","Manda","123-1233","02-14-1970","Male","Manager","20,000","Regular"},
{"002","Batman","Manda","33-1233","07-14-2007","Male","Clerk","20,000","Regular"},
};

我试试这段代码

int arrLen = emp.lenght;
emp[arrLen][0] = "003"
emp[arrLen][1] = "Superwoman"
emp[arrLen][2] = "QC"
emp[arrLen][3] = "123-1233"
emp[arrLen][4] = "03-12-2012"
emp[arrLen][5] = "Female"
emp[arrLen][6] = "Supervisor"
emp[arrLen][7] = "10,000"
emp[arrLen][8] = "Regular"

但它不起作用

任何人都可以帮助我吗?

感谢

6 个答案:

答案 0 :(得分:4)

您不能添加到数组 - 创建后,大小是固定的。您应该考虑使用List<E>实现,例如ArrayList ...理想情况下创建了一个类型来封装这些信息,而不仅仅是一个字符串数组。看起来你有日期,名字,数值等 - 为什么不使用这些信息?

例如:

List<Person> people = new ArrayList<Person>();
people.add(new Person(1, "Superman", "Manda", new TelephoneNumber("123-1233"),
           new LocalDate(1970, 14, 2), Gender.MALE,
           "Manager", 20000, SalaryType.REGULAR);

答案 1 :(得分:0)

你有一个错字

lenght

此外,陈述必须以

结尾
;

最后,你的实际问题是:数组的长度在创建时是固定的; array [array.length]将始终指向数组外部。

答案 2 :(得分:0)

Java数组具有固定长度。如果您想要可调整大小的数组,请使用ArrayList

示例:

ArrayList<String[]> list = new ArrayList<String[]>();
list.add(new String[]{"Superman","Manda","..."});
list.add(new String[]{"Superwoman","Manda","..."});

答案 3 :(得分:0)

array.length返回一个比索引高1的数字。

答案 4 :(得分:0)

数组对象的大小固定。你可以分配一个新的,更大的String[][]对象并将子阵列移到它上面 - 即,

String[][] tmp = new String[emp.length + 1][];
for (int i=0; i<emp.length; ++i)
   tmp[i] = emp[i];
emp = tmp;

在此之后,主阵列末尾有一个空位。填写

emp[emp.length-1] = new String[] {"003", ...};

答案 5 :(得分:0)

您当前的代码存在两个大问题。

1)数组不是动态的,并且具有固定的大小。您应该使用ArrayLists数据结构,您可以在其中添加值。

2)你的array.Length返回一些长度n,但你的数组从0到(n-1)索引。因此,引用长度将为您提供超出范围的索引异常。