Java 查找堆栈中最多的引用

Java 查找堆栈中最多的引用,java,Java,我是编程新手,如果这个问题很简单,请接受我的道歉 我的老师希望我们创建一个方法,在堆栈中搜索最常出现的名称并返回它 例如:如果堆栈中有以下名称: 泰格·伍兹、杰克·尼古拉斯、阿诺德·帕尔默、杰克·尼古拉斯、吉米·德莫里特、杰克·尼古拉斯、山姆·斯奈德、吉米·德莫里特、本·霍根、沃尔特·哈根、汤米·阿莫尔、博比·琼斯 该方法应返回Jack Nicholas 请帮助我,因为我需要知道如何为我的程序做这件事 提前感谢您您的程序将需要执行以下操作: 创建或获取名称列表,并将它们全部添加到堆栈中 迭代堆栈

我是编程新手,如果这个问题很简单,请接受我的道歉

我的老师希望我们创建一个方法,在堆栈中搜索最常出现的名称并返回它

例如:如果堆栈中有以下名称:

泰格·伍兹、杰克·尼古拉斯、阿诺德·帕尔默、杰克·尼古拉斯、吉米·德莫里特、杰克·尼古拉斯、山姆·斯奈德、吉米·德莫里特、本·霍根、沃尔特·哈根、汤米·阿莫尔、博比·琼斯

该方法应返回Jack Nicholas

请帮助我,因为我需要知道如何为我的程序做这件事


提前感谢您

您的程序将需要执行以下操作:

  • 创建或获取名称列表,并将它们全部添加到堆栈中
  • 迭代堆栈中的每个项,并跟踪遇到它的次数(称为频率计数)
  • 确定哪个名称具有最高频率计数并返回该值

  • 尝试执行这些步骤,并用您遇到的任何具体问题更新您的问题。

    解决这一问题的简单方法是按照maerics所说的去做。但更具体地说,创建一个HashMap,使用字符串(名称)作为键,int(频率)作为值。然后遍历堆栈中的每个名称并将其添加到HashMap中,并将该名称的频率增加1。如果名称已经在HashMap中,只需增加其频率。完成后,频率最高的名称将是您希望得到的名称。

    到目前为止您写了什么?你对如何解决这个问题有什么想法吗?如果我给你一张纸上的名字列表,你会如何找到最常出现的名字?他是特别想要一堆,还是对列表感到满意?这两个元素并不是互斥的,但从语义上讲,你可能会把它看作(并使用它)列表,而不是堆栈。如果最常出现的元素出现超过n/2次,这可以在
    O(n)
    中使用堆栈(没有列表)来完成。下面是一些伪代码。对于堆栈中的每个名称,如果名称不在HashMap中,则使用值1将名称添加到HashMap,否则将频率增加1