java - 获取 LinkedHashMap 的前一个元素

标签 java linkedhashmap listiterator

我需要获取 LinkedHashMap 的前一个元素。 我尝试使用 ListIterator,因为它有 previous() 方法。但问题是 ListIterator 需要一个 List 而不是一个集合。

ListIterator<Entry<String, Integer>> it = (ListIterator<Entry<String, Integer>>) unitsItems.entrySet().iterator();

我必须将我的 entrySet 转换成一个列表。所以我尝试了这个:

List entryList= new ArrayList (unitsItems.entrySet());
     ListIterator<Entry<String, Integer>> it = (ListIterator<Entry<String, Integer>>) entryList.iterator();

我得到了这个错误:

java.util.ArrayList$Itr cannot be cast to java.util.ListIterator

谁能告诉我将集合转换为列表然后在 ListIterator 中使用它的正确方法? 谢谢。

最佳答案

根据要求:因为您已经有了列表 entryList你只需要调用listIterator()在它上面得到你想要的。

顺便说一句,我还将通用类型添加到列表中:List<Entry<String, Integer>> = new ArrayList<>(unitsItems.entrySet());

关于java - 获取 LinkedHashMap 的前一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35918790/

相关文章:

java - 使用 JMX 连接访问 GridKernalMBean

java - 将 .jar 文件添加到 netbeans 中的项目后,如何将其中的类导入到 netbeans 中的项目中?

java - 为什么 DesEncrypter 的 iOS 实现不会产生与 Java 相同的结果?

java:如何为变量自动生成自定义方法

java并发映射按值排序

java - 如何按插入顺序添加和删除 HashMap 值?

java - 将值放入 LinkedHashMap 多维

c++ - 我们可以在没有 'advance' 函数的情况下增加迭代器多个位置吗?

java - ListIterator 在开始/结束时有不同的行为

java - LinkedList中Iterator的remove()方法