Java语言怎么用类的方式实现查找菜单被选择了多少次

Java语言怎么用类的方式实现查找菜单被选择了多少次?最后一次菜单的选择要考虑在内和不考虑在内?怎么实现菜单的查找的功能的实现的方法

代码如下:


public class Menu {
    private int count; // 记录菜单选择的次数

    public Menu() {
        count = 0;
    }
  
    public void selectMenu() {
        count++;
    }
  
    public int getCount() {
        return count;
    }
}

或许递归会更简单……:

Java 递归实例操作-查询层级菜单_java递归查询层级_回忆中的明天的博客-CSDN博客 递归程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。递归的运用_java递归查询层级 https://blog.csdn.net/lb52406/article/details/117964650

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7664817
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:java通过键盘不断输入某门课程的成绩(利用异常处理解决当输入非法数字或非数字的字符串时提示输入不正确)
  • 同时,你还可以查看手册:java-学习Java语言 - 描述Java编程语言的基本概念和特点的课程。-泛型是Java编程语言的一个强大功能。它们提高了代码的类型安全性,使更多的错误可以在编译时发现。-野生动物 中的内容
  • 您还可以看一下 汪翠老师的java项目实战之欢乐斗地主游戏开发教程 毕业项目课程设计带源码课程中的 给扑克牌绑定鼠标事件实现单击可以选择出牌列表小节, 巩固相关知识点
  • 除此之外, 这篇博客: java垃圾回收中的 垃圾回收的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    优化后的问题:

    问题标题: 如何使用Java类实现统计菜单被选择的次数?

    问题标签: java, 统计, 菜单

    问题内容: 我希望能够使用Java类实现对菜单被选择的次数进行统计。具体要求如下:

    1. 能够统计菜单的选择次数,包括每个菜单的选择次数和总体选择次数。
    2. 提供两种统计方式:考虑最后一次菜单选择和不考虑最后一次菜单选择。
    3. 能够实现菜单查找功能,即根据菜单的名称或索引查找对应的选择次数。

    请按照以下步骤提供解决方案:

    步骤1: 创建一个菜单项类

    首先,我们需要创建一个菜单项类来表示每个菜单项的名称和选择次数。

    public class MenuItem {
        private String name;
        private int count;
    
        public MenuItem(String name) {
            this.name = name;
            this.count = 0;
        }
    
        public String getName() {
            return name;
        }
    
        public int getCount() {
            return count;
        }
    
        public void incrementCount() {
            count++;
        }
    }
    

    步骤2: 创建菜单类

    接下来,我们需要创建一个菜单类,该类包含了所有菜单项和对菜单选择次数的统计。

    import java.util.HashMap;
    import java.util.Map;
    
    public class Menu {
        private Map<String, MenuItem> menuItems;
    
        public Menu() {
            menuItems = new HashMap<>();
        }
    
        public void addMenuItem(String menuItemName) {
            MenuItem menuItem = new MenuItem(menuItemName);
            menuItems.put(menuItemName, menuItem);
        }
    
        public void incrementMenuItemCount(String menuItemName) {
            MenuItem menuItem = menuItems.get(menuItemName);
            if (menuItem != null) {
                menuItem.incrementCount();
            }
        }
    
        public int getMenuItemCount(String menuItemName, boolean considerLastSelection) {
            MenuItem menuItem = menuItems.get(menuItemName);
            if (menuItem != null) {
                int count = menuItem.getCount();
                if (!considerLastSelection) {
                    // 不考虑最后一次菜单选择
                    count--;
                }
                return count;
            }
            return 0;
        }
    
        public int getTotalMenuItemCount(boolean considerLastSelection) {
            int totalCount = 0;
            for (MenuItem menuItem : menuItems.values()) {
                int count = menuItem.getCount();
                if (!considerLastSelection) {
                    // 不考虑最后一次菜单选择
                    count--;
                    if (count < 0) {
                        count = 0;
                    }
                }
                totalCount += count;
            }
            return totalCount;
        }
    }
    

    步骤3: 使用菜单类进行统计和查找

    现在,我们可以使用菜单类进行统计和查找菜单选择次数了。

    public class Main {
        public static void main(String[] args) {
            Menu menu = new Menu();
            menu.addMenuItem("MenuItem1");
            menu.addMenuItem("MenuItem2");
    
            // 假设用户选择了MenuItem1和MenuItem2
            menu.incrementMenuItemCount("MenuItem1");
            menu.incrementMenuItemCount("MenuItem2");
    
            // 统计菜单选择次数
            int menuItem1CountConsideringLastSelection = menu.getMenuItemCount("MenuItem1", true);
            int menuItem2CountConsideringLastSelection = menu.getMenuItemCount("MenuItem2", true);
            int totalMenuItemCountConsideringLastSelection = menu.getTotalMenuItemCount(true);
    
            int menuItem1CountWithoutLastSelection = menu.getMenuItemCount("MenuItem1", false);
            int menuItem2CountWithoutLastSelection = menu.getMenuItemCount("MenuItem2", false);
            int totalMenuItemCountWithoutLastSelection = menu.getTotalMenuItemCount(false);
    
            System.out.println("MenuItem1 count considering last selection: " + menuItem1CountConsideringLastSelection);
            System.out.println("MenuItem2 count considering last selection: " + menuItem2CountConsideringLastSelection);
            System.out.println("Total menu item count considering last selection: " + totalMenuItemCountConsideringLastSelection);
    
            System.out.println("MenuItem1 count without last selection: " + menuItem1CountWithoutLastSelection);
            System.out.println("MenuItem2 count without last selection: " + menuItem2CountWithoutLastSelection);
            System.out.println("Total menu item count without last selection: " + totalMenuItemCountWithoutLastSelection);
        }
    }
    

    这样,你就可以使用菜单类来统计菜单被选择的次数,并根据需要考虑最后一次菜单选择或不考虑最后一次菜单选择。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^