我怎么可能为二维动态数组添加一个值?
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"
但它不起作用
任何人都可以帮助我吗?
感谢
答案 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)索引。因此,引用长度将为您提供超出范围的索引异常。