Java : json 反序列化到对象, array 字段定义成 array 还是 List,哪个好?

2019-08-28 22:18:42 +08:00
 gIrl1990
{
    arr:[]
}
class A {
    B[] b;
}
class A {
    List<B> b;
}
  1. Q: 用哪个好点?有区别么?

  2. Q: List 在 new 的时候不是可以指定初始容量么。

    那个 json 框架可以比如在字段上添加个注解用来在创建 List 时指定初始容量

1693 次点击
所在节点    问与答
11 条回复
iffi
2019-08-28 22:22:39 +08:00
给前端返回就用 array 啊 readonly
lhx2008
2019-08-28 22:23:21 +08:00
当然是 List,功能就多很多
gIrl1990
2019-08-28 22:27:35 +08:00
@iffi 这不是前端返回啊,是把 json 转到 java 对象。。对象里有个数组类型字段,是定义成数组[]还是集合 List ?
@lhx2008 第 2 问,有人清楚吗?
maninfog
2019-08-28 22:30:31 +08:00
我在纠结是写 List 好还是 ArrayList 好,不知道 gson 具体是怎么实例化的
mikicomo
2019-08-28 22:46:46 +08:00
一般给前端用,我就用 arr[],后端自己用我就 List[]
gIrl1990
2019-08-28 23:20:10 +08:00
@maninfog 233 我也纠结过, 不过还是 ArrayList 常用些。各大框架默认也是这个。。gson 不是很慢么。感觉 jackson 好快。
misaka19000
2019-08-28 23:45:35 +08:00
显然是 List,难道你们在工程中会用 Array 这种扩展性很差的 AST 吗
maninfog
2019-08-28 23:55:03 +08:00
@gIrl1990 这个慢应该是针对于比较复杂的数据可能有毫秒级别的差距吧,影响不大,一直用 gson,个人觉得 g 家的工程师应该不输于阿里
gIrl1990
2019-08-29 00:38:13 +08:00
@maninfog fastjson 国内褒贬不一。。但 jackson 我看过是真的快
jamesxu
2019-08-29 07:21:55 +08:00
平时不管什么地方都是用 List,数组能少用就少用
iffi
2019-08-29 14:23:33 +08:00
@gIrl1990 抱歉,没看清楚。不过还是一样,看你是否只是仅仅从这个列表读取数据。要是仅仅是读取。用数组就够了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/596032

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX