Tag: linkedhashmap

从LinkedHashMap构建有序的JSON字符串

我需要按照插入的顺序使用Key / Value对,所以我选择在HashMap上使用LinkedHashMap 。 但我需要将LinkedHashMap转换为JSON字符串,其中LinkedHashMap中的顺序保留在字符串中。 但目前我通过以下方式实现: 首先将LinkedHashMap转换为JSON。 然后将JSON转换为字符串。 import java.util.LinkedHashMap; import java.util.Map; import org.json.JSONObject; public class cdf { public static void main(String[] args) { Map myLinkedHashMap = new LinkedHashMap(); myLinkedHashMap.put(“1″,”first”); myLinkedHashMap.put(“2″,”second”); myLinkedHashMap.put(“3″,”third”); JSONObject json = new JSONObject(myLinkedHashMap); System.out.println(json.toString()); } } 输出是: {“3″:”third”,”2″:”second”,”1″:”first”} . 但我想按照插入键的顺序,如下所示: {“1″:”first”,”2″:”second”,”3″:”third”} 一旦我将LinkedHashMap转换为JSON,它就会失去它的顺序(显然JSON没有顺序的概念),因此字符串也是乱序的。 现在,如何生成一个与LinkedHashMap相同的JSON字符串?

使用LinkedHashMap实现LRU缓存

我试图使用LinkedHashMap实现LRU缓存。 在LinkedHashMap( http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html )的文档中,它说: 请注意,如果将键重新插入地图,则不会影响插入顺序。 但是当我做下面的提示 public class LRUCache extends LinkedHashMap { private int size; public static void main(String[] args) { LRUCache cache = LRUCache.newInstance(2); cache.put(1, 1); cache.put(2, 2); cache.put(1, 1); cache.put(3, 3); System.out.println(cache); } private LRUCache(int size) { super(size, 0.75f, true); this.size = size; } @Override protected boolean removeEldestEntry(Map.Entry eldest) { return size() > […]

HashMap与LinkedHashMap在值迭代中的性能()

HashMap和LinkedHashMap之间是否存在遍历values()函数的性能差异?

如何在java流中按降序排序LinkedHashMap?

要按升序对其进行排序,我可以使用: myMap.entrySet().stream() .sorted(Map.Entry.comparingByValue()) .collect(Collectors.toMap(Entry::getKey, Entry::getValue)); 我怎么能按降序排列呢?

带有String的GSON问题

String s = “m\\”+”/m\\/m/m/m/m/m”; LinkedHashMap hm = new LinkedHashMap(); hm.put(“test”, s); System.out.println(hm+” Hash map = “+hm.toString()); 精细输出为{test=m\/m\/m/m/m/m/m} Hash map = {test=m\/m\/m/m/m/m/m} String s2 = new Gson().toJson(hm.toString()); System.out.println(“Json result is “+s2); Json result is “{test\u003dm\\/m\\/m/m/m/m/m}”输出是Json result is “{test\u003dm\\/m\\/m/m/m/m/m}” GSON是疯了还是我做错了? 反斜杠和这个u003d出现在哪里会发生什么? 我知道很久以前就存在这种性质的错误但它已经解决了。 我该如何解决这个问题? 提前致谢。

如何使用其键获取LinkedHashMap中键/值的位置

嗨,我有一个包含名称/年龄(字符串/ int)对的LinkedHashMap(称为info)。 我想知道,如果我输入密钥,如何获得键/值的位置。 例如,如果我的LinkedHashMap看起来像这样{bob = 12,jeremy = 42,carly = 21}并且我要搜索jeremy,它应该返回1作为它的位置1.我希望我可以使用类似info.getIndex的东西( “杰里米”)

如何反向遍历链接哈希映射?

可能重复: 以相反的顺序迭代LinkedHashMap 如何以相反的顺序遍历链接的哈希映射? 地图中是否有任何预定义方法可以做到这一点? 我正在创建如下: LinkedHashMap map = new LinkedHashMap(); map.put(1, “one”); map.put(2, “two”); map.put(3, “three”);

LinkedHashMap的内部实现与HashMap实现有何不同?

我读到HashMap具有以下实现: main array ↓ [Entry] → Entry → Entry ← linked-list implementation [Entry] [Entry] → Entry [Entry] [null ] 因此,它有一个Entry对象数组。 问题: 我想知道如果相同的hashCode但不同的对象,这个数组的索引如何存储多个Entry对象。 这与LinkedHashMap实现有何不同? 它是map的双链表实现,但它是否像上面那样维护一个数组,它如何存储指向下一个和前一个元素的指针?

如何在哈希表中保持元素的顺序

我有一个哈希表。 values()方法以某种顺序返回值,这些顺序与我插入的顺序不同。如何以与插入时相同的顺序获取值?使用LinkedHashmap是一种替代方法,但它不是同步的。

Java:列表列表的笛卡尔积

我有一个问题,这是一个普通的编程问题,但我的实现是在Java中,所以我将以这种方式提供我的示例 我有一个这样的课: public class Foo { LinkedHashMap<String, Vector> dataStructure; public Foo(LinkedHashMap<String, Vector> dataStructure){ this.dataStructure = dataStructure; } public String[][] allUniqueCombinations(){ //this is what I need to do } } 我需要从LinkedHashMap生成一个嵌套数组,它表示LHM中所有值的每个唯一组合。 例如,如果我的LHM看起来像这样(伪代码,但我认为你可以得到这个想法……): {“foo” => [“1″,”2″,”3”], “bar” => [“3″,”2”], “baz” => [“5″,”6″,”7”]}; 那么我的String [] []应该是这样的: { {“foo”,”bar”,”baz”}, {“1″,”3″,”5”}, {“1″,”2″,”5”}, {“1″,”3″,”6”}, {“1″,”2″,”6”}, {“1″,”3″,”7”}, {“1″,”2″,”7”}, {“2″,”3″,”5”}, {“2″,”2″,”5”}, {“2″,”3″,”6”}, {“2″,”2″,”6”}, […]