我知道LinkedHashMap有一个可预测的迭代顺序(插入顺序).是否Set通过返回LinkedHashMap.keySet()和Collection返回的LinkedHashMap.values()也维持这种秩序?
我使用过,LinkedHashMap因为重要的是键在地图中输入的顺序.
但现在我想首先获得key的值(第一个输入的条目)或最后一个.
如果有喜欢的方法first()和last()或类似的东西?
我是否需要一个迭代器才能获得第一个键入口?这就是我使用的原因LinkedHashMap!
谢谢!
我正在使用linkedHashMap来保证当有人试图访问它时的顺序.但是,当需要迭代它时,是否使用entrySet()返回键/值对保证顺序?迭代时不会进行任何更改.
编辑:此外,迭代通过其键并调用get迭代地图是否有任何不利影响?
我有以下LinkedHashMap声明.
LinkedHashMap<String, ArrayList<String>> test1
Run Code Online (Sandbox Code Playgroud)
我的观点是如何迭代这个哈希映射.我想这样做,为每个键获取相应的arraylist并逐个打印arraylist的值.
我试过这个,但只得到返回字符串,
String key = iterator.next().toString();
ArrayList<String> value = (ArrayList<String> )test1.get(key)
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,它使用Jackson将一些数据存储在DynamoDB中,以便将我的复杂对象编组为JSON.
例如,我正在编组的对象可能如下所示:
private String aString;
private List<SomeObject> someObjectList;
Run Code Online (Sandbox Code Playgroud)
SomeObject可能如下所示:
private int anInteger;
private SomeOtherObject;
Run Code Online (Sandbox Code Playgroud)
和SomeOtherObject可能如下所示:
private long aLong;
private float aFloat;
Run Code Online (Sandbox Code Playgroud)
这很好,对象被编组没有问题,并作为JSON字符串存储在DB中.
当需要从DynamoDB检索数据时,Jackson会自动检索JSON并将其转换回来...除了'someObjectList'返回的List<LinkedHashMap>不是List<SomeObject>!这是杰克逊的标准行为,这不是一个错误.
所以现在这会导致问题.我的代码库认为它处理一个List<SomeObject>但现实是它处理一个List<LinkedHashMap>!我的问题是如何让我的LinkedHashMap回到'SomeObject'.显然这是一个手动过程,但我的意思是我甚至无法提取值.
如果我这样做:
for (LinkedHashMap lhm : someObjectList) {
// Convert the values back
}
Run Code Online (Sandbox Code Playgroud)
我收到一个编译错误,告诉我someObjectList的类型为'SomeObject'而不是LinkedHashMap.
如果我这样做:
for (SomeObject lhm : someObjectList) {
// Convert the values back
}
Run Code Online (Sandbox Code Playgroud)
我收到运行时错误,告诉我LinkedHashMap无法转换为'SomeObject'.
LRU和LFU缓存实现有什么区别?
我知道LRU可以使用实现LinkedHashMap.但是如何实现LFU缓存?
我有
LinkedHashMap<String, List<String>> hMap;
Run Code Online (Sandbox Code Playgroud)
我想List<String>通过位置而不是关键.
我不想使用迭代.
有没有其他方法可以根据索引获得价值?
我有一个有序的LinkedHashMap,我想在特定索引处添加元素,比如在地图中的第一个位置或最后一个位置.如何在LinkedHashMap中的特定位置添加元素?
即使我可以在LinkedHashMap中向FIRST或LAST位置添加元素也会有所帮助!
如果LinkedHashMap包含String和Integer,我如何根据其值对LinkedHashMap进行排序.所以我需要根据整数值对它进行排序.非常感谢
调用LinkedHashMap.keySet()时,返回的Set的顺序是否与添加键的顺序相同?
linkedhashmap ×10
java ×9
collections ×2
android ×1
caching ×1
casting ×1
dictionary ×1
iteration ×1
jackson ×1
lru ×1
map ×1
set ×1