Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.IndexOutOfBoundsException:使用ArrayList时索引为0,大小为0_Java_List_Exception_Arraylist - Fatal编程技术网

java.lang.IndexOutOfBoundsException:使用ArrayList时索引为0,大小为0

java.lang.IndexOutOfBoundsException:使用ArrayList时索引为0,大小为0,java,list,exception,arraylist,Java,List,Exception,Arraylist,我试图存储所有这些元素,但我得到了类似java.lang.IndexOutOfBoundsException的错误:Index:0,Size:0,我不确定我的错误是什么 public List<AddUserInformation> insertData(AddUserDetail user) { List<AddUserInformation> inserted = null; try{ List<AddUserInformatio

我试图存储所有这些元素,但我得到了类似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 addUserInformation1=新的ArrayList

创建一个新的空ArrayList,因此当您在for循环中写入addUserInformation1.geti时,您试图访问索引0处的元素,但列表仍然为空,0处没有元素,因此您会得到异常

您必须将某些内容添加到列表中,例如,调用添加。。。方法,然后再尝试获取。。。元素。

正如Robert提到的,您试图访问一个不存在的元素

注意:列表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;
    }

请尝试在第二个for块的开头添加类似以下语句的内容:addUserInformation1.addnew AddUserInformation;