你正在冰淇淋店试图决定你想要什么样的冰淇淋和浇头。有很多选择!
您决定编写一个程序来帮助您列出所有可能的选择。
写一个方法
ArrayList getAllChoices(String [] flavors,String [] topping) 这需要一系列冰淇淋口味和一系列浇头作为参数,并返回一个ArrayList,其中包含冰淇淋和浇头的每种可能组合。
每个组合应以
的形式表示"{{flavor}} with {{topping}} on top"
其中{{flavor}}是提供的冰淇淋口味,如“巧克力”,{{topping}} is a provided topping, like “sprinkles”.
例如,方法调用:
String[] flavors = {"chocolate", "vanilla"};
String[] toppings = {"sprinkles", "fudge"};
getAllChoices(flavors, toppings);
应该返回一个包含以下字符串的ArrayList:
["chocolate with sprinkles on top", "chocolate with fudge on top", "vanilla with sprinkles on top", "vanilla with fudge on top"]
我有什么:
public ArrayList<String> getAllChoices(String[] flavors, String[] toppings)
{
String[] flavors = {"chocolate", "vanilla"};
String[] toppings = {"sprinkles", "fudge"};
for(int i = 0; i < flavors.size(); i ++)
{
for(int x = 0; x < toppings.size(); x++)
{
String flavorss = flavors[i];
String toppingss = toppings[x];
return (flavorss + " with " + toppingss + " on top");
}
}
}
不是很擅长这个并且不确定它为什么不起作用。
编辑:使用此解决方案。
public ArrayList<String> getAllChoices(String[] flavors, String[] toppings)
{
ArrayList<String> retList = new ArrayList<String>();
for(int i = 0; i < flavors.length; i ++)
{
for(int x = 0; x < toppings.length; x++)
{
String flavorss = flavors[i];
String toppingss = toppings[x];
// Add to list instead of returning.
retList.add(flavorss + " with " + toppingss + " on top");
}
}
return retList;
}
感谢您的帮助!
答案 0 :(得分:1)
public ArrayList<String> getAllChoices(String[] flavors, String[] toppings)
{
ArrayList<String> retList = new ArrayList<String>();
for(int i = 0; i < flavors.length; i ++)
{
for(int x = 0; x < toppings.length; x++)
{
String flavorss = flavors[i];
String toppingss = toppings[x];
// Add to list instead of returning.
retList.add(flavorss + " with " + toppingss + " on top");
}
}
return retList;
}
您的迭代很好,但是您过早地返回列表。您的执行只会返回第一个结果。
此外,这是java语法。不是javascript。
答案 1 :(得分:0)
忽略语言和标签不匹配,错误是两个嵌套循环内部的立即返回。你应该首先在数组中收集结果,然后将其返回。
答案 2 :(得分:0)
首先是您的Java
和JavaScript
其他两种语言。我想你想在Java
编写这个程序,你的函数应该返回ArrayList<String>
,你在这里声明:
public ArrayList<String> getAllChoices(String[] flavors, String[] toppings){...}
所以你应该创建临时ArrayList
并添加你创建的所有字符串,然后在循环之外你应该返回它,如果你做这样的事情(即使它工作) :
return (flavorss + " with " + toppingss + " on top");
你的函数将在嵌套循环的一次迭代后退出,其他return
类型不是ArrayList<String>
,它只是String
。
以下是解决方案的解决方法:
public ArrayList<String> getAllChoices(String[] flavors, String[] toppings) {
ArrayList<String> tempList = new ArrayList<>();
for (int i = 0; i < flavors.length; i++) {
for (int x = 0; x < toppings.length; x++) {
String temp = flavors[i] + " with " + toppings[i] + " on top";
tempList.add(temp);
}
}
return tempList;
}
PS。 size
没有array
方法,您应该使用length
。