Tag: hashmap

如何通过JNI将HashMap从Java发送到C.

我有一个具有HashMap字段的Object 。 当Object传递给C时,如何访问该字段? Object的Class包含以下字段: private String hello; private Map params = new HashMap();

如何正确使用HashMap?

HashMap savedStuff = new HashMap(); savedStuff.put(“symbol”, this.symbol); //this is a string savedStuff.put(“index”, this.index); //this is an int 给我警告: HashMap is a raw type. References to generic type HashMap should be parameterized

jackson:地图的反序列化

我正在使用Jackson来反序列化一个json文件(我用jackson序列化)。 json是一个简单的HashMap,但是当我尝试反序列化时,映射器正在抱怨。 org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.HashMap out of START_ARRAY token 我的序列化HashMap字符串….. { “0f861a9a-0a3e-40a7-8ff3-0b83d8070876” : { “name” : “BAR.xml”, “filePath” : “/FOO/repo/BAR.xml” }, “f3cbb32e-b7b8-4af1-b48b-7ea393de7971” : { “name” : “BLAH.xml”, “filePath” : “/FOO/repo/BLAH.xml” }, “012009b6-26e9-4bc1-9050-2a4ac9546c7e” : { “name” : “Check System.xml”, “filePath” : “/FOO/repo/Check System.xml” } } 我已经尝试了两种不同的方法来完成这项工作,但都失败了…… //doesn’t work cache = (Map) mapper.readValue(bytes.toString(), […]

Java 8流:迭代列表地图

我有以下对象和地图: MyObject String name; Long priority; foo bar; Map<String, List> anotherHashMap; 我想在另一个地图中转换地图。 结果映射的键是输入映射的键。 结果映射的值是My对象的Property“name”,按优先级排序。 排序和提取名称不是问题,但我无法将其放入结果图中。 我是用旧的Java 7方式做的,但是可以使用流API是很好的。 Map<String, List> result = new HashMap(); for (String identifier : anotherHashMap.keySet()) { List generatedList = anotherHashMap.get(identifier).stream()…; teaserPerPage.put(identifier, generatedList); } 有人有想法吗? 我试过这个,但卡住了: anotherHashMap.entrySet().stream().collect(Collectors.asMap(…, …));

如何certificatejava中的HashMap不是线程安全的

我正在开发应用程序,它将HashMap作为共享状态。 我需要通过unit testingcertificate它在multithreading环境中会有问题。 我试图通过检查这两个HashMap的大小和元素来检查sinlge线程环境和multithreading环境中的应用程序状态。 但似乎这没有帮助,状态总是一样的。 有没有其他方法来certificate它或certificate在地图上执行操作的应用程序适用于并发请求?

使用带有Maps键集的流时出现ConcurrentModificationException

我想从someMap删除someMap中不存在哪些键的所有项目。 看看我的代码: someMap.keySet().stream().filter(v -> !someList.contains(v)).forEach(someMap::remove); 我收到java.util.ConcurrentModificationException 。 为什么? 流不是平行的。 这样做最优雅的方法是什么?

基于Value然后Key对HashMap进行排序?

可能重复: 如何在Java中的值上对Map 进行排序? 我有一个类型的HashMap: HashMap h = new HashMap(); HashMap包含一个字符串列表,而Integer是一个计数器,用于查找String的次数。 我希望能够做的是基于整数对HashMap进行排序,然后按字符串的字母顺序排序。 目前,我正在记录一个单词的最大出现(变量名为max)并显示如下值: public void print(){ while(max > 0){ for (String key : h.keySet()){ if(h.get(key) == max){ System.out.println(key + ” ” + h.get(key)); } } max–; } } 它不按字母顺序对值进行排序,也访问HashMap最大* h(大小)次。 什么是更好的解决方案?

在Java Map中查找重复值?

我想在HashMap显示值。 HashMap可能有重复的值(但不是重复的键),但我想只显示一次值。 所以我应该找到Map是否有重复的值。 我知道我们可以迭代Map并使用map.containsValue(value)的返回布尔map.containsValue(value) 。 我想知道是否有任何方法可以在map中找到重复值,或者我自己应该编写代码?

两张地图之间的差异

我需要非常有效地比较Clojure / Java中的两个映射,并返回由Java的.equals(..)确定的差异,其中nil / null等效于“not present”。 即我正在寻找一种最有效的方式来编写一个函数,如: (map-difference {:a 1, :b nil, :c 2, :d 3} {:a 1, :b “Hidden”, :c 3, :e 5}) => {:b nil, :c 2, :d 3, :e nil} 我更喜欢不可变的Clojure映射作为输出,但如果性能提升很重要,Java映射也会很好。 对于它的价值,我的基本测试用例/行为期望是对于任何两个映射a和b,以下将是相等的(最多等于null =“Not present”): a (merge b (difference ab)) 实现这个的最佳方法是什么?

为什么不直接比较e.key而不是将其分配给变量?

在阅读HashMap的源代码时,我在public V put(K key, V value)遇到了这个片段: for (Entry e = table[i]; e != null; e = e.next) { Object k; if (e.hash == hash && ((k = e.key) == key || key.equals(k))) { V oldValue = e.value; e.value = value; e.recordAccess(this); return oldValue; } } 为什么e.key分配给k进行比较? 为什么不直接比较,如: if (e.hash == hash && (e.key == key […]