如何给不同的arraylist赋值?
How to place a value to different arraylist?
我正在做一个餐厅模拟项目。但是,我卡在了代码的反馈部分。我从顾客那里拿了食物给 ArrayList
,关于这个 ArrayList
,程序可以针对每种食物一个一个地提出问题,并从顾客那里获取一个评分值。但是我不能将它们放入不同的 ArrayLists 中。我想这样做是因为关于食物的比率,程序应该显示评分最高的食物。
简而言之,我想对不同的数组进行排序。
public static ArrayList FeedBack(ArrayList<String> foods) {
int foodtype;
int rate;
for (int i = 0; i < foods.size(); i++) {
System.out.printf("%s", foods.get(i));
System.out.println("");
System.out.println("please rate that food out of 5");
Scanner feedbackk = new Scanner(System.in);
rate = feedbackk.nextInt();
if ((foods.get(i)).equals("Fried Fries")) {
RateOfFriedFries.add(rate);
AllTheFoodRates.add(RateOfFriedFries);
} else if (foods.get(i).equals("Meat Bal")) {
RateOfMeatBall.add(rate);
AllTheFoodRates.add(RateOfMeatBall);
}
}
return AllTheFoodRates;
}
按如下操作:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
//Test
List<String> foods=Arrays.asList("Fried Fries","Meat Bal");
System.out.println(feedBack(foods));
}
public static List<ArrayList> feedBack(List<String> foods){
int foodType;
int rating;
List<ArrayList> ratingOfAllFoods=new ArrayList<ArrayList>();
List<Integer> ratingOfFriedFries=new ArrayList<Integer>();
List<Integer> ratingOfMeatBall=new ArrayList<Integer>();
for(int i=0;i<foods.size();i++) {
System.out.printf("%s%n",foods.get(i));
System.out.print("Please rate that food out of 5: ");
Scanner feedback=new Scanner(System.in);
if(feedback.hasNextInt()) {
rating=feedback.nextInt();
if ("Fried Fries".equals(foods.get(i))) {
ratingOfFriedFries.add(rating);
ratingOfAllFoods.add((ArrayList) ratingOfFriedFries);
}
else if("Meat Bal".equals(foods.get(i))){
ratingOfMeatBall.add(rating);
ratingOfAllFoods.add((ArrayList) ratingOfMeatBall);
}
} else {
System.out.println("Invalid input");
}
}
return ratingOfAllFoods;
}
}
样本运行:
Fried Fries
Please rate that food out of 5: 3
Meat Bal
Please rate that food out of 5: 4
[[3], [4]]
我还建议您遵循变量和函数的命名约定。
我正在做一个餐厅模拟项目。但是,我卡在了代码的反馈部分。我从顾客那里拿了食物给 ArrayList
,关于这个 ArrayList
,程序可以针对每种食物一个一个地提出问题,并从顾客那里获取一个评分值。但是我不能将它们放入不同的 ArrayLists 中。我想这样做是因为关于食物的比率,程序应该显示评分最高的食物。
简而言之,我想对不同的数组进行排序。
public static ArrayList FeedBack(ArrayList<String> foods) {
int foodtype;
int rate;
for (int i = 0; i < foods.size(); i++) {
System.out.printf("%s", foods.get(i));
System.out.println("");
System.out.println("please rate that food out of 5");
Scanner feedbackk = new Scanner(System.in);
rate = feedbackk.nextInt();
if ((foods.get(i)).equals("Fried Fries")) {
RateOfFriedFries.add(rate);
AllTheFoodRates.add(RateOfFriedFries);
} else if (foods.get(i).equals("Meat Bal")) {
RateOfMeatBall.add(rate);
AllTheFoodRates.add(RateOfMeatBall);
}
}
return AllTheFoodRates;
}
按如下操作:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
//Test
List<String> foods=Arrays.asList("Fried Fries","Meat Bal");
System.out.println(feedBack(foods));
}
public static List<ArrayList> feedBack(List<String> foods){
int foodType;
int rating;
List<ArrayList> ratingOfAllFoods=new ArrayList<ArrayList>();
List<Integer> ratingOfFriedFries=new ArrayList<Integer>();
List<Integer> ratingOfMeatBall=new ArrayList<Integer>();
for(int i=0;i<foods.size();i++) {
System.out.printf("%s%n",foods.get(i));
System.out.print("Please rate that food out of 5: ");
Scanner feedback=new Scanner(System.in);
if(feedback.hasNextInt()) {
rating=feedback.nextInt();
if ("Fried Fries".equals(foods.get(i))) {
ratingOfFriedFries.add(rating);
ratingOfAllFoods.add((ArrayList) ratingOfFriedFries);
}
else if("Meat Bal".equals(foods.get(i))){
ratingOfMeatBall.add(rating);
ratingOfAllFoods.add((ArrayList) ratingOfMeatBall);
}
} else {
System.out.println("Invalid input");
}
}
return ratingOfAllFoods;
}
}
样本运行:
Fried Fries
Please rate that food out of 5: 3
Meat Bal
Please rate that food out of 5: 4
[[3], [4]]
我还建议您遵循变量和函数的命名约定。