Java 对于给定类型的数据及其使用,我应该选择哪种数据结构

Java 对于给定类型的数据及其使用,我应该选择哪种数据结构,java,pdfbox,Java,Pdfbox,我正在使用PDFBOXAPI创建一个Java项目来创建一个图形。我必须使我的图形完全可配置。我已经实现了它将如何发生的一切。以及将为此输入什么但我无法决定输入数据应使用哪种数据结构。 我的输入数据 ___________________________________________ |标签1(Y轴)|标签2(X轴)| |____________________|_____________________| |工作A | 20 | |工作B | 30 | |工作C | 50 | |工作日10日

我正在使用PDFBOXAPI创建一个Java项目来创建一个图形。我必须使我的图形完全可配置。我已经实现了它将如何发生的一切。以及将为此输入什么但我无法决定输入数据应使用哪种数据结构。

我的输入数据

___________________________________________
|标签1(Y轴)|标签2(X轴)|
|____________________|_____________________|
|工作A | 20 |
|工作B | 30 |
|工作C | 50 |
|工作日10日
|工作E | 27 |
|____________________|_____________________|

对于数据的表示表示抱歉

图表将具有水平条

这些数据的顺序保持不变

我能够找到所有值的最大值(从标签2很容易)


猜猜看???

如果我是你,我会使用LinkedHashMap。 为什么?

  • 它保持插入顺序
  • 你可以很容易地在O(1)时间内得到它的任何元素
  • 如果将密钥重新插入地图,则插入顺序不会受到影响
  • 此外,从映射中获取所有元素是通过每个条目进行迭代的,因此看起来像这样:

    for (Map.Entry<String, Integer> entry : map.entrySet())
    {
        System.out.println(entry.getKey() + ":" + entry.getValue());
    }
    
    for(Map.Entry:Map.entrySet())
    {
    System.out.println(entry.getKey()+“:”+entry.getValue());
    }
    
    编辑:


    根据评论,即使是简单的ArrayList,也会包含一对工作和值。您可以轻松地存储当前最大值,同时向其中添加元素,这样就不需要浪费时间来查找。我唯一建议您提供大小,因为ArrayList只增长50%,并以默认大小10开始。此外,如果要逐个向ArrayList添加元素,请使用简单的方法add将其添加到末尾。

    IMO对于图形打印,不需要维护插入顺序。在问题中提到的数据的上下文中,API是否在(10,工作D)之前获得(20,工作A)并不重要。让我知道你的想法。你是说,输入顺序不重要,例如,你的索引会按字母顺序排列对吗?在这种情况下,即使是包含成对(工作和价值)的简单列表也不错。你能提供一个用法的例子吗?您的程序中最常用的案例是什么?查找最小元素还是添加更多元素?还是迭代?是的,你是对的。我认为无论数据的顺序如何,数据表示都更为重要@YugSinghI不会在这个数据集中添加或操作任何内容。我只想从这个数据集中找到最大值,因为我想根据@AjrisI所做的编辑来设置x轴的长度,根据这些注释@HardikSaraf