我有要输入的代码
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
的值?
答案 0 :(得分:0)
您的代码无法编译。以下内容不会编译,因为team_list
是ArrayList<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);