ArrayMap替代方法保留插入顺序,并具有方法get()和valueAt()

时间:2018-12-05 02:02:47

标签: java android android-studio data-structures

这是针对Android Studio Java的。我之所以使用ArrayMap是因为我都需要方法get(Object key)valueAt(int index)。 但是ArrayMap不会保留插入顺序。

所以我尝试了LinkedHashMap,因为它保留了插入顺序。但是LinkedHashMap没有valueAt(int index)方法。

是否有一个保留插入顺序并且同时具有方法get(Object key)valueAt(int index)的Map?

1 个答案:

答案 0 :(得分:0)

祝贺您的第一篇文章!

首先,请提一个建议-与其说是Java问题,不如说是Android问题,因此,尽管用Android标记此问题可能会使其更具可见性,但标签有点误。

第二,如果要标记Java,还可以尝试标记特定的Java版本(Java 6/7/8等),该版本应在build.gradle文件中找到...

第三,请确保您正在搜索,并确保正在查看SO的类似建议问题,因为大多数项目(例如此项目)已在之前被问及回答...


对于您的问题,Map类树没有一个具有可索引方法的实例。参见https://docs.oracle.com/javase/7/docs/api/java/util/Map.html及其后代...也https://docs.oracle.com/javase/tutorial/collections/interfaces/map.html

但是,Apache Commons库具有LinkedMap的实现,该实现的确具有indexOf()方法...尽管对于这种用例而言,可能会增加很多负担?

但是,有一些方法可以自己完成,主要是通过将其包装/展开到其他数据结构中来强制执行,而且效率低下(O(n))...

以下是一些有关此的帖子:

如您所见,性能和详细程度都是这里的潜在问题...

我想最好的办法是退后一步,看看您是否可以在此处阐明用例,以便我们可以帮助确定您要确切解决的问题...