这行代码向我抛出异常:线程“main”java.lang.IndexOutOfBoundsException中的异常:索引:5,大小:5
String [][] employeeNamesA = new String [2][index];
for (int i = 0; i<index; i++)employeeNamesA[0][i] = employeeNames.get(i);
我正在尝试将 ArrayList 转换为多维数组。
这行代码向我抛出异常:线程“main”java.lang.IndexOutOfBoundsException中的异常:索引:5,大小:5
String [][] employeeNamesA = new String [2][index];
for (int i = 0; i<index; i++)employeeNamesA[0][i] = employeeNames.get(i);
我正在尝试将 ArrayList 转换为多维数组。
您的employeeNames
列表没有index
元素数量。它很可能有 5,这意味着它会IndexOutOfBoundsException
在执行employeeNames.get(i)
i = 5 时抛出。
正如 jlordo 所建议的,您应该只创建一个 Employee 类。
这是一个例子:
class Employee {
String name;
String info;
public Employee(String n, String i) {
name = n;
info = i;
}
public String getName() {
return name;
}
public void setName(String s) {
name = s;
}
public String getInfo() {
return info;
}
public void setInfo(String s) {
info = s;
}
}
List<String> nameList = // populate nameList
List<String> infoList = // populate infoList
List<Employee> employeeList = new ArrayList<Employee>();
for (int i = 0; i < nameList.size(); i++) {
String name = nameList.get(i);
String info = null;
if (infoList.size() > i) {
info = infoList.get(i);
}
Employee emp = new Employee(name, info);
employeeList.add(emp);
}
现在您有了一个 Employee 对象列表,而不是一个愚蠢的多维数组。
(请注意,我们检查infoList
循环中的大小以避免IndexOutOfBoundsException
)