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

时间:2018-12-27 13:44:11

标签: java pdfbox

我正在使用PDFBox API创建Java项目以创建图形。我必须使我的图完全可配置。我已经实现了一切。以及为此输入的内容。 但是我无法决定应使用哪种数据结构来输入数据。

我的输入数据

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

很抱歉,数据表示形式

图形将带有水平条。

此数据的顺序保持不变。

我能够找到所有值的最大值(很容易从Label 2中找到)。

任何猜测?

1 个答案:

答案 0 :(得分:0)

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

  1. 它保持插入顺序
  2. 您可以在O(1)时间内轻松获取任何元素
  3. 如果将密钥重新插入到地图中,则插入顺序不会受到影响

此外,从映射中获取所有元素都是在每个条目中进行迭代,因此看起来像这样:

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

编辑:

根据注释,即使是简单的ArrayList(包含一对工作和值)也很好。您可以在添加当前元素的同时轻松地存储当前的最大值,而无需浪费时间去寻找一个最大值。我只建议您提供大小,因为ArrayList仅增长50%,并以默认大小10开始。此外,如果您想要一个元素一个接一个地添加到ArrayList,请使用简单的方法add ,将其添加到末尾。