Java-集合框架与数组的实际应用-组装Json字符串
Posted MoMoweiduan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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就是实体类对象。
-----------------------------------------------------------------------------------------------------
以上是关于Java-集合框架与数组的实际应用-组装Json字符串的主要内容,如果未能解决你的问题,请参考以下文章
java 集合框架-CopyOnWriteArrayList