gpt4 book ai didi

java - 用于存储具有唯一索引的数千个对象的数据结构

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:49:25 27 4
gpt4 key购买 nike

我正在使用 Java SAX 解析器读取一个巨大的 xml 文件: http://api.steampowered.com/IEconItems_440/GetSchema/v0001/?format=xml(2.82 MB)

此文件包含数千个“项目”,每个项目都具有“名称”、“级别”等属性。其中一个属性是称为“defindex”的唯一整数标识符。我正在为这些项目中的每一个创建 POJO,并将上面提到的一些属性作为字段(defindex 是其中之一)。

  • 我需要通过搜索 defindex 来大量阅读这些项目对象
  • 虽然我不会改变对象的数据字段

我的问题是:我应该如何存储这些项目对象?

我的第一个想法是将它们存储在一个数组中,并使用 defindex 作为实际的数组索引,但是数组会很大并且并不是所有的 defindex 都被使用,例如它一度从 2k 跳到 30k。

最佳答案

使用 Map .

Map 对象存储唯一“键”和值之间的关系。

Map 的实现有 HashMapTreeMap 等。它们是通用的,具有键和值的类型参数。

您可以使用以下内容。这绝对是伪代码;使其适应您将要操纵这些对象的方式。我没有考虑 SAX API;这只是演示了如何使用 Map

Map<Integer, Item> items = new HashMap<Integer, Item>();
for (Item itemToRead : file) { // or however you iterate
items.put(item.getDefindex(), item);
}

// data retrieval
Item itemToRetrieve = items.get(defindexToGet);

关于java - 用于存储具有唯一索引的数千个对象的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17824019/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com