Return maximum element

Tags:



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());
        }
}

Answer

If I understand you correctly, you can try this

order.stream().max(Comparator.comparing(this::norder)).get();


Source: stackoverflow