![](/img/trans.png)
[英]“Exception in thread ”main“ java.lang.IndexOutOfBoundsException: Index: 0, Size: 0” with ArrayList?
[英]java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 while working with ArrayList
我正在尝试存储所有这些元素,并且收到诸如java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
错误消息java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
,但我不确定我的错误是什么。
public List<AddUserInformation> insertData(AddUserDetail user) {
List<AddUserInformation> inserted = null;
try{
List<AddUserInformation> addUserInformation = new ArrayList<AddUserInformation>() ;
ArrayList accName = new ArrayList();
for (int i = 0; i < user.getListofaccounts().toArray().length ; i++) {
accName.add(user.getListofaccounts().get(i).getAccountName());
}
List<AddUserInformation> addUserInformation1 = new ArrayList<AddUserInformation>();
for (int i = 0; i< accName.toArray().length; i++) {
addUserInformation1.get(i).setUserID(user.getUserId());
addUserInformation1.get(i).setUsername(user.getUsername());
addUserInformation1.get(i).setPassword(user.getPassword());
addUserInformation1.get(i).setEmailid(user.getEmailid());
List<AddUserAccountDetails> adduseraccountdetails = new ArrayList<>();
addUserInformation1.get(i).setAccountName(user.getListofaccounts().get(i).getAccountName());
addUserInformation1.get(i).setPermission_id(user.getListofaccounts().get(i).getPermission_id());
}
inserted = adduserInformationDao.saveAddUserInfo(addUserInformation1);
} catch (Exception e) {
LOGGER.error("Exception in adding of account to a user " + user.getUsername(), e);
}
return inserted;
}
事情是accName包含帐户数量,让我们说“ n”为列表,最后在第二个“ for”循环中替换新值并显示最后一个列表值。
该声明:
List<AddUserInformation> addUserInformation1 = new ArrayList<AddUserInformation>();
创建一个新的空ArrayList
,因此当您在for循环中编写addUserInformation1.get(i)
时, 您试图访问索引为0
的元素,但列表仍然为空 (元素为0
),因此会出现异常。
在尝试get(...)
元素之前,必须先向列表中添加一些内容(例如,调用add(...)
方法)。
如Robert所述,您正在尝试访问不存在的元素。
注意: List<AddUserAccountDetails> adduseraccountdetails = new ArrayList<>();
从未使用过..
您可以创建类AddUserInformation
的对象,然后将其添加到列表中,如下所示:
public List<AddUserInformation> insertData(AddUserDetail user) {
List<AddUserInformation> inserted = null;
try{
List<AddUserInformation> addUserInformation = new ArrayList<AddUserInformation>() ;
ArrayList accName = new ArrayList();
for( int i = 0; i < user.getListofaccounts().toArray().length ; i++ ) {
accName.add(user.getListofaccounts().get(i).getAccountName());
}
List<AddUserInformation> addUserInformation1 = new ArrayList<AddUserInformation>();
for(int i = 0; i< accName.toArray().length; i++) {
AddUserInformation obj = new AddUserInformation ();
obj.setUserID(user.getUserId());
obj.setUsername(user.getUsername());
obj.setPassword(user.getPassword());
obj.setEmailid(user.getEmailid());
obj.setAccountName(user.getListofaccounts().get(i).getAccountName());
obj.setPermission_id(user.getListofaccounts().get(i).getPermission_id());
addUserInformation1.add(obj);
}
inserted = adduserInformationDao.saveAddUserInfo(addUserInformation1);
}catch (Exception e) {
LOGGER.error("Exception in adding of account to a user " + user.getUsername(), e);
}
return inserted;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.