java对象数组相互组装_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:[,,,]格式的数据

dfdf713102e1a2a295015ea32c37838a.png

第二:Map集合

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

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

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

ea43a8f5698a9122efbba3b851cfc974.png

第三:set集合

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

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

8566718553de4d5ee8d3f5ae786ded5c.png

第四:数组

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

52ff4f6d064c1bb7a9f4de09cc03e2fc.png

利用上面的集合框架,以及数组的特点,就可以随心所欲组成任何形式的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就是实体类对象。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值