我正在使用 java 中的实时应用程序,我有一个看起来像这样的数据结构。
HashMap<Integer, Object> myMap;
现在这对于存储我需要的数据非常有效,但它在获取数据时会杀死我。我遇到的根本问题是,如果我打电话
Collection<Object> myObjects = myMap.values();
Iterator<object> it = myObjects.iterator();
while(it.hasNext(){ object o = it.next(); }
我在我的类中将迭代器和集合声明为变量,并在每次迭代时分配它们,但对集合的迭代非常慢。这是一个实时应用程序,因此需要每秒至少迭代 25 次。
查看分析器,我发现每次更新都会创建一个迭代器的新实例。
我正在考虑两种可能更改哈希图以解决我的问题的方法。1. 以某种方式缓存迭代器,虽然我不确定这是否可能。2. 可能更改 hashmap.values() 的返回类型以返回列表而不是集合 3. 使用不同的数据结构,但我不知道我可以使用什么。