首页 > 其他分享 >LinkedHashMap

LinkedHashMap

时间:2023-05-19 23:11:50浏览次数:32  
标签:jsonArray jsonObject value JsonObject id LinkedHashMap

com.google.gson.JsonArray用里面元素的id为key元素JsonObject为value且要记下每个元素本来的位置,用java集合实现:

可以使用LinkedHashMap来实现这个需求。

LinkedHashMap是基于哈希表实现的Map,但是同时维护一个插入顺序链表,可以保证元素的顺序与插入的顺序一致。

同时,将每个元素的位置作为value存储在JsonObject中,可以轻松获得每个元素本来的位置。

具体实现可以参考下面的代码:

 1 import com.google.gson.JsonArray;
 2 import com.google.gson.JsonElement;
 3 import com.google.gson.JsonObject;
 4 import java.util.LinkedHashMap;
 5 
 6 public class JsonArrayExample {
 7     public static void main(String[] args) {
 8         JsonArray jsonArray = new JsonArray();
 9 
10         // 添加元素到JsonArray
11         jsonArray.add(createJsonObject("id1", "value1"));
12         jsonArray.add(createJsonObject("id2", "value2"));
13         jsonArray.add(createJsonObject("id3", "value3"));
14 
15         // 使用LinkedHashMap保存元素的位置和对应的JsonObject
16         LinkedHashMap<String, JsonObject> linkedHashMap = new LinkedHashMap<>();
17 
18         for (int i = 0; i < jsonArray.size(); i++) {
19             JsonElement jsonElement = jsonArray.get(i);
20             if (jsonElement.isJsonObject()) {
21                 JsonObject jsonObject = jsonElement.getAsJsonObject();
22                 String id = jsonObject.get("id").getAsString();
23                 linkedHashMap.put(id, jsonObject);
24             }
25         }
26 
27         // 遍历LinkedHashMap并打印结果
28         for (String id : linkedHashMap.keySet()) {
29             JsonObject jsonObject = linkedHashMap.get(id);
30             System.out.println("ID: " + id);
31             System.out.println("Value: " + jsonObject.get("value").getAsString());
32             System.out.println("Original Position: " + jsonArray.indexOf(jsonObject));
33             System.out.println();
34         }
35     }
36 
37     private static JsonObject createJsonObject(String id, String value) {
38         JsonObject jsonObject = new JsonObject();
39         jsonObject.addProperty("id", id);
40         jsonObject.addProperty("value", value);
41         return jsonObject;
42     }
43 }

 

标签:jsonArray,jsonObject,value,JsonObject,id,LinkedHashMap
From: https://www.cnblogs.com/SuperGuoYa/p/17416548.html

相关文章

  • 简单说说HashMap和LinkedHashMap的区别
    HashMap和LinkedHashMap的区别我们知道HashMap的变量顺序是不可预测的,这意味着便利的输出顺序并不一定和HashMap的插入顺序是一致的。这个特性通常会对我们的工作造成一定的困扰。为了实现这个功能,我们可以使用LinkedHashMap。LinkedHashMap详解先看下LinkedHashMap的定义:pu......
  • 对list中的字段进行自定义排序,最后放在LinkedHashMap中
    List<ProjectVO>projectList=dbProjectService.getProjectList();这里面如果第一个字段是如下的顺序:"成都分公司","北京分公司","上海分公司","深圳分公司","广州分公司","重庆分公司"Map<String,List<ProjectVO>>map=projectL......
  • HashMap和LinkedHashMap遍历机制
    原文链接:HashMap和LinkedHashMap遍历机制对HashMap和LinkedHashMap遍历的几种方法以HashMap为例,LinkedHashMap方法一样。一共有三种遍历方式Iterator<Map.Entry......
  • Java中Map类型数据使用LinkedHashMap保留数据的插入顺序
    场景Vue中JS遍历后台JAVA返回的Map数据,构造对象数组数据格式:Vue中JS遍历后台JAVA返回的Map数据,构造对象数组数据格式_BADAO_LIUMANG_QIZHI的博客在上面构造以时间为Key,以......
  • hashmap,hashtabl,hashtree,linkedhashmap区别分析
    java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMapHashtableLinkedHashMap和TreeMap.Map主要用于存储健值对,根据......
  • Map实现类之二:LinkedHashMap
    LinkedHashMap是HashMap的子类在HashMap存储结构的基础上,使用了一对双向链表来记录添加元素的顺序与LinkedHashSet类似,LinkedHashMap可以维护Map的迭代顺序:迭代顺......
  • TreeMap,HashMap,LinkedHashMap区别
    TreeMap,HashMap,LinkedHashMap之间的区别和TreeSet,HashSet,LinkedHashSet之间的区别相似。TreeMap:内部排序,内部使用了红黑树排序HashMap:无序。LinkedHashMap:顺序存取,内部是单......
  • java LinkedHashMap学习
    一、LinkedHashMap概述LinkedHashMap是HashMap的一个子类,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap。LinkedHashMap是Map接口的哈希表......
  • 【Java】无法将java.util.LinkedHashMap强制转换为X
    JsonJack:无法将java.util.LinkedHashMap强制转换为X1.概述Jackson是一个广泛使用的Java库,它使可以方便地对JSON或XML进行序列化/反序列化。有时,当尝试将JSON或XML反序列......
  • 有序Map集合:LinkedHashMap和TreeMap该如何选用
    文章目录​​前言​​​​一、为什么HashMap是无序的​​​​二、LinkedHashMap如何保证有序性​​​​三、TreeMap的底层原理​​​​四、LinkedHashMap和TreeMap比较​​......