Tag: linkedhashmap

JAX-WS,为什么LinkedHashMap集合收到的是空的?

我正在构建一个java Web服务,它接收LinkedHashMap作为参数。 LinkedHashMap集合在客户端插入了一些元素,但我在webservice中将其清空。

以正确的顺序从Web服务中迭代Json数据

我有来自Web服务的响应,数据是JSON格式。 JSONObject event:- { “15:00”:{“type”:1,”status”:null,”appointment_id”:null}, “16:00”:{“type”:1,”status”:null,”appointment_id”:null}, “17:00”:{“type”:1,”status”:null,”appointment_id”:null}, “18:00”:{“type”:1,”status”:”1″,”appointment_id”:5} } 我不知道关键值,它们是随机的。 因此,当我使用迭代器通过获取keys和hasNext()来迭代数据时。 它返回数据但改变了即将到来的数据的顺序。 Iterator AppoinmentIter = event.keys(); while(AppoinmentIter.hasNext()){ String appointmentTime = (String)AppoinmentIter.next(); JSONObject appointmentDetails = event.getJSONObject(appointmentTime); } 我想要数据的确切顺序。 我查了这个链接 ,建议使用LinkedHashMap 。 但是在这里他们通过键插入值。 我不知道我的数据中的密钥。 那么我怎么能以正确的顺序迭代数据。 请帮忙..

如何按其值类的字段对LinkedHashMap进行排序?

我使用以下行来对LinkedHashMap进行排序,但并非所有项都已排序,有什么不对吗? LinkedHashMap statisticsMap; // fill in the map … LinkedHashMap sortedStatisticsMap=new LinkedHashMap(); // Sort it by patternData’s average ArrayList statisticsMapValues=new ArrayList(statisticsMap.values()); Collections.sort(statisticsMapValues,Collections.reverseOrder()); // Sorting it (in reverse order) patternData last_i=null; for (PatternData i : statisticsMapValues) // Now, for each value { if (last_i==i) continue; // Without dublicates last_i=i; for (String s : statisticsMap.keySet()) // Get […]

从LinkedHashMap转换为Json String

我正在使用Jongo与Mongo一起工作,当我进行查询时,我收到了LinkedHashMap作为结果。 Iterator one = (Iterator) friends.find(query).projection(“{_id:0}”).as(Object.class); while (one.hasNext()) { LinkedHashMap data= new LinkedHashMap(); data= (LinkedHashMap) one.next(); String content=data.toString(); } 问题是,如果json是{“user”:“something”}内容将是{user = something},那么json只是来自HashMap的toString方法。 我怎么能得到原始的JSON? 我没有用于映射响应的类,并且它不是创建map类的解决方案,这就是我使用Object.class的原因。

如何获取LinkedHashMap的keyIterator?

通过查看Sun的LinkedHashMaps的源代码,我看到有一个名为KeyIterator的私有类,我想使用它。 我怎样才能获得访问权限?

Java中的软引用LinkedHashMap?

Java中是否存在基于softreference的LinkedHashMap? 如果不是,有没有人得到我可以重用的代码片段? 我保证能正确引用它。 谢谢。

ConcurrentModificationException甚至在LinkedHashMap上使用Collections.sychronizedMap

我在我的类中使用了一个Map对象,我已经与LinkedHashMap的Collections.synchronizedMap()同步,如下所示: private GameObjectManager(){ gameObjects = Collections.synchronizedMap(new LinkedHashMap()); } 我在这个函数的第三行得到一个并发修改exception: public static void frameElapsed(float msElapsed){ if(!INSTANCE.gameObjects.isEmpty()){ synchronized(INSTANCE.gameObjects){ for(GameObject object : INSTANCE.gameObjects.values()){…} } } } 我正在迭代Map的所有其他位置,我按照文档在地图上进行同步。 我的类中还有其他函数使用这个Map(同步的!)和put()和remove()对象,但这应该不重要。 我究竟做错了什么? 请询问更多代码,不知道还有什么要放。 哦,和日志消息: 08-20 15:55:30.109: E/AndroidRuntime(14482): FATAL EXCEPTION: GLThread 1748 08-20 15:55:30.109: E/AndroidRuntime(14482): java.util.ConcurrentModificationException 08-20 15:55:30.109: E/AndroidRuntime(14482): at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:350) 08-20 15:55:30.109: E/AndroidRuntime(14482): at java.util.LinkedHashMap$ValueIterator.next(LinkedHashMap.java:374) 08-20 15:55:30.109: E/AndroidRuntime(14482): at package.GameObjectManager.frameElapsed(GameObjectManager.java:247) 08-20 […]

如何使用LinkedHashMap中的类似function实现ConcurrentHashMap?

我使用了LinkedHashMap和accessOrder true,并且随时允许最多500个条目作为数据的LRU缓存。 但由于可伸缩性问题,我想转向一些线程安全的替代方案。 ConcurrentHashMap在这方面似乎很好,但缺少LinkedHashMap找到的accessOrder和removeEldestEntry(Map.Entry e)的function。 任何人都可以指向某些链接或帮助我简化实施。

根据java中递减顺序的差异,将映射过滤为每10个数的一行

我有一个方法,我可以通过这个方法过滤每10个倍数的行,即我可以按升序过滤最接近10的倍数的行,例如10,20,30等。现在我想按递减顺序执行相同的过程。 请参考以下链接 – 根据差异,filterarrays每十个倍数一行? 在上面提到的链接中,相同的过程按升序进行,我想按递减顺序执行此操作并将值存储在map中。但是我无法做到。 我正在使用以下代码来检索beam_current以递增顺序为十的倍数的行 – public static LinkedHashMap ClosestToMultiplesOfTen_User() throws SQLException { int row_id ; int bIdx = 0; double[] vals = new double[34]; // double[] bucket =new double[bucketCount]; int rowIndex = 0 ; int i=0; try { con = getConnection(); stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); // String sql=”select logtime,beam_current from INDUS2_BDS.dbo.DCCT where logtime between […]

ConcurrentModificationException Woes

我有一个方法test(),其中我试图将两个LinkedHashMaps相互比较,并通过删除键/值对来修改其中一个映射的内容(如果在两个LHM中都找到它)。 运行此方法时,我不断收到ConcurrentModificationException。 我理解为什么我得到exception(因为我试图修改循环的列表)。 不过我不知道该怎么做。 到目前为止我有这个代码: private void test() { LinkedHashMaptestBene = new LinkedHashMap(); LinkedHashMaptestDly = new LinkedHashMap(); testBene.put(“ABCDEFG”, BigDecimal.ZERO); testBene.put(“BCDEFGH”, BigDecimal.ONE); testBene.put(“CDEFGHI”, BigDecimal.TEN); testDly.put(“BCDEFGH”, BigDecimal.ONE); testDly.put(“Foo”, BigDecimal.TEN); testDly.put(“Bar”, BigDecimal.TEN); for (Entry beneKeySet : testBene.entrySet()) { if (testDly.containsKey(beneKeySet.getKey())) { for (Entry dlyKeySet : testDly.entrySet()) { if ((dlyKeySet.getKey().equals(beneKeySet.getKey())) && dlyKeySet.getValue().equals(beneKeySet.getValue())) { testBene.remove(dlyKeySet.getKey()); } } } } }