V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gIrl1990
V2EX  ›  问与答

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

  •  
  •   gIrl1990 · 2019-08-28 22:18:42 +08:00 · 1705 次点击
    这是一个创建于 1916 天前的主题,其中的信息可能已经有所发展或是发生改变。
    {
        arr:[]
    }
    
    class A {
        B[] b;
    }
    class A {
        List<B> b;
    }
    
    1. Q: 用哪个好点?有区别么?

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

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

    11 条回复    2019-08-29 14:23:33 +08:00
    iffi
        1
    iffi  
       2019-08-28 22:22:39 +08:00
    给前端返回就用 array 啊 readonly
    lhx2008
        2
    lhx2008  
       2019-08-28 22:23:21 +08:00
    当然是 List,功能就多很多
    gIrl1990
        3
    gIrl1990  
    OP
       2019-08-28 22:27:35 +08:00
    @iffi 这不是前端返回啊,是把 json 转到 java 对象。。对象里有个数组类型字段,是定义成数组[]还是集合 List ?
    @lhx2008 第 2 问,有人清楚吗?
    maninfog
        4
    maninfog  
       2019-08-28 22:30:31 +08:00 via iPhone
    我在纠结是写 List 好还是 ArrayList 好,不知道 gson 具体是怎么实例化的
    mikicomo
        5
    mikicomo  
       2019-08-28 22:46:46 +08:00
    一般给前端用,我就用 arr[],后端自己用我就 List[]
    gIrl1990
        6
    gIrl1990  
    OP
       2019-08-28 23:20:10 +08:00
    @maninfog 233 我也纠结过, 不过还是 ArrayList 常用些。各大框架默认也是这个。。gson 不是很慢么。感觉 jackson 好快。
    misaka19000
        7
    misaka19000  
       2019-08-28 23:45:35 +08:00
    显然是 List,难道你们在工程中会用 Array 这种扩展性很差的 AST 吗
    maninfog
        8
    maninfog  
       2019-08-28 23:55:03 +08:00 via iPhone
    @gIrl1990 这个慢应该是针对于比较复杂的数据可能有毫秒级别的差距吧,影响不大,一直用 gson,个人觉得 g 家的工程师应该不输于阿里
    gIrl1990
        9
    gIrl1990  
    OP
       2019-08-29 00:38:13 +08:00
    @maninfog fastjson 国内褒贬不一。。但 jackson 我看过是真的快
    jamesxu
        10
    jamesxu  
       2019-08-29 07:21:55 +08:00 via iPhone
    平时不管什么地方都是用 List,数组能少用就少用
    iffi
        11
    iffi  
       2019-08-29 14:23:33 +08:00
    @gIrl1990 抱歉,没看清楚。不过还是一样,看你是否只是仅仅从这个列表读取数据。要是仅仅是读取。用数组就够了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3255 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:55 · PVG 20:55 · LAX 04:55 · JFK 07:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.