从List创建数组时的IndexOutOfBoundException

时间:2014-05-14 17:16:30

标签: java

我有这个方法返回List个用户名,由于某种原因它会抛出indexOutOfBoundException

public  String [] getUsernames(){
    String[] usernames = new String [friendRequests.size()];
    int i = 1;
    for (FriendRequest  friendRequest:  this.friendRequests){
        usernames[i]= friendRequest.getUsername();
        i++;
    }
    return usernames;
}
  

注意

     

拜托,不要因为它而盲目地对这个问题进行投票   已经是。

     

当我问这个问题(差不多三年前)时,我的英语技能   不是那么好,这就是它的主要原因   被投票了。

     

我已编辑它以使我的问题更清楚了。

3 个答案:

答案 0 :(得分:6)

数组索引从0

开始

并且您从1开始,因此会导致ArrayIndexOutOfBoundException

答案 1 :(得分:5)

使用它。 数组的索引从零开始。 将有ArrayIndexOutOfBound

public  String [] get_usernames(){
    String[] usernames = new String [friend_requests.size()];

    int i = 0;
    for (Friend_request  Single_FR:  this.friend_requests){
        usernames[i]= Single_FR.get_username();
        i++;
    }

    return usernames;
}

答案 2 :(得分:2)

代码将为最后一个元素抛出ArrayIndexOutOfBoundsException

更改声明

i = 1

i = 0;

问题应该解决。数组索引从0开始,而不是从1开始。