Java-集合框架与数组的实际应用-组装Json字符串

最近一直在做Json字符串的拼接工作。具体就是:按照接口开发文档,将数据库的数据查询出来,然后组成接口文档的Json形式传送给前端。所有最近都在和集合框架打交道,所以现在做一下简单的应用总结。

第一:List集合

1.基本知识:List集合是有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问。ArrayList,LinkedList是List接口的实现类

a.ArrayList:数组结构,特点:访问速度快,插入,删除慢。

1)如果在初始化ArrayList的时候没有指定初始化长度的话,默认的长度为10. 

2)ArrayList在增加新元素的时候如果超过了原始的容量的话,ArrayList扩容ensureCapacity的方案为“原始容量*3/2+1"  

3)ArrayList是线程不安全的,在多线程的情况下不要使用。

4)ArrayList实现遍历的几种方法:foreach();Iterator()

b.LinkedList:链表结构,特点:插入,删除快,查询慢

2.应用场景:List集合经常被用来存储 从数据库查询出来的对象,个人认为原因就是在于它“有序可重复”的特点。ArrayList用来存储data:[,,,]格式的数据

第二:Map集合

1.基本知识: Map集合中保存Key-value对形式的元素,访问时只能根据每项元素的key来访问其value。HashMap,LinkedHashMap,TreeMap是其实现类

2.HashMap:特点:它符合存储关联数据的要求,其次它的存取速度快

一般情况下,我们用的最多的是HashMap,在Map 中插入、删除和定位元素,HashMap 是最好的选择。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。如果需要输出的顺序和输入的相同,那么用LinkedHashMap 可以实现,它还可以按读取顺序来排列。

第三:set集合

1.基本知识:Set中的元素实现了无序,不重复。常见实现类有HashSet,LinedHashSet和TreeSet这三个。

2.HashSet:查询速度较快,不能保证存取顺序,但是LinkedHashSet能够保证存取顺序

第四:数组

数组,可以看作是有序可重复的,用在一些特殊的环境,例如我有一天二十四小时的部分数据,有数据的可以按照坐标一 一对应使用,无数据的就使用null代替。

利用上面的集合框架,以及数组的特点,就可以随心所欲组成任何形式的json字符串。

----------------------------------------2018-01-18补充---------------------------------------

前端:JavaScript对象与Json字符串的转换;当页面有很多数据需要传送要后端时,我们可以将数据装入Js对象中,然后使用JSON.stringify() 方法将 JavaScript 值转换为 JSON 字符串。

  var  data={};

  data["hello"]="hello"  //给data对象添加属性

  var obj= new Array();

  data.obj = obj;  //给data对象添加数组(该数组相当于一个属性)

  var  json = JSON.stringify(data);  //将data对象转化为Json字符串

后端:Json字符串与实体类对象的转换;后端接收到参数“json”字符串,然后进行转换成相应的实体类对象(假设该实体类对象为Object)。

  Gson gson = new Gson();  //需要导入的包为: com.google.gson.Gson

  Object obj =gson.fromJson(data, Object.class);  //obj就是实体类对象。  

-----------------------------------------------------------------------------------------------------

原文地址:https://www.cnblogs.com/momoweiduan/p/8025786.html