在Java中显示变量名前5位的任何方法?

问题描述 投票:0回答:2

我一直在尝试在JFrame中制作并显示13个选项中的前5个。它是这样的:

我有一个.txt,里面有很多单词,比方说苹果,香蕉,橘子等。每个单词都有一个计数器。然后,我打开文件并使用扫描仪和字符串对其进行扫描,如果找到“苹果”一词,则会在苹果计数器中加1。在扫描整个.txt文件之后,我将计数器放入一个数组中,并使用Arrays.sort(array);对它们进行排序;

我的问题是数组仅保存每个单词的数值,所以我尝试将数组的最后一个位置(因为它是最高的)与每个单词的每个计数器进行比较,如果与我设置的任何计数器相匹配那个作为“ Top 1”,然后我对“ Top 2”和数组中倒数第二个做同样的事情,等等。

但是,显然只有在没有重复值的情况下,这才有效。如果“ Apple”和“ Orange”都出现3次,则两者都将匹配,然后,程序将在TextField1和2中设置第一个匹配的对象。]

有没有办法解决这个问题?也许是一种在TextField中显示变量名称而不是值的方法?还是保留了变量的名称和值的不同数据结构?

提前感谢!

我一直在尝试在JFrame中制作并显示13个选项中的前5个。它的内容是这样的:我有一个带一堆单词的.txt,比如说苹果,香蕉,橙子等。还有一个用于...

java arrays jframe jtextfield
2个回答
0
投票

或者也许使用其他数据结构来保留变量的名称和值?


0
投票

您可能要考虑Java中的优先级队列。但是首先,您需要一个具有2个属性(单词及其数量)的类。此类应实现Comparable,并且必须重写compareTo方法。这是一个示例:https://howtodoinjava.com/java/collections/java-priorityqueue/

© www.soinside.com 2019 - 2024. All rights reserved.