最近一直在做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字符串。