I wrote this program which can count the number of pizzas ordered.
I can’t find how to return the maximum element of my list (the pizza with maximum orders).
I tried this but it doesn’t work
return order.stream().max(Comparator.comparing(norder::pizza)).get();
public class PizzaCount {
private ArrayList<String> order;
private String[] menu;
public PizzaCount(String[] pizzas) {
this.menu = pizzas;
this.order = new ArrayList<>();
}
public int norder(String pizza) {
int number=0;
for(String pizzaOrdered : this.order){
if(pizza(pizzaOrdered)){
number++;
}
}
return number;
}
public String pizzamax() {
/*stuck here*/
}
public static void main(String[] args) {
String [] menu = {"romana", "funghi"};
PizzaCount n = new PizzaCount(menu);
n.add("romana");
n.add("romana");
n.add("funghi");
System.out.println("number of romana: "+ n.norder("romana"));
System.out.println("number of funghi: "+ n.norder("funghi"));
System.out.println("the pizza with the maximum order is: "+ n.pizzamax());
}
}
Advertisement
Answer
If I understand you correctly, you can try this
order.stream().max(Comparator.comparing(this::norder)).get();