无法从选项列表中检索结果

时间:2018-10-25 15:06:42

标签: java arraylist

我有要输入的代码

String[] team_list = {"Alpha","Bravo","Charlie"};
ArrayList<Team> team = generate_team(arr, team_list);

然后我的功能:

public static ArrayList<Team> generate_orders(int[] arr, String[] teamName]) {
    ArrayList<Team> team_list = new ArrayList<Team>();
    String team;
    for(i = 1; i <= 3; i++){
        team= team_list[i%team_list.length];
        Team o = new Team(teamName);
        team_list.add(o);
        System.out.println(team_list + "\n");   
     }
     return team_list;
}

但是我的结果是:

Alpha
Alpha
Alpha

添加时:

System.out.print("k= "+ i%team_list.length)

我回来了,123

为什么team_list.add(o)没得到i%team_list.length的值?

2 个答案:

答案 0 :(得分:0)

您的代码无法编译。以下内容不会编译,因为team_listArrayList<Team>,因此[]运算符没有意义,因为它仅适用于数组:

team= team_list[i%team_list.length];` 

在Java数组中,数组从0开始,并且在遍历数组时可以利用enhanced for loop statement

public static List<Team> generateOrders(String[] teamNames) {
    List<Team> result = new ArrayList<Team>();
    for (String name : teamNames) {
        Team t = new Team(name);
        result.add(t);
    }
    return result;
}

或使用流:

public static List<Team> generateOrders(String[] teamNames) {
    return Arrays.stream(teamNames)
        .map(Team::new)
        .collect(Collectors.toList());
}

答案 1 :(得分:0)

您似乎误解了如何使用数组。

public static ArrayList<Team> generateTeams(String[] teamNames) {
    ArrayList<Team> result = new ArrayList<Team>();
    for(i = 0; i < teamNames.length(); i++){
        result.add(new Team(teamNames[i]);
     }
     return result;
}

String[] team_list = {"Alpha","Bravo","Charlie"};
ArrayList<Team> teams = generateTeams(team_list);