V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
gIrl1990
V2EX  ›  问与答

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

  •  
  •   gIrl1990 · Aug 28, 2019 · 2043 views
    This topic created in 2437 days ago, the information mentioned may be changed or developed.
    {
        arr:[]
    }
    
    class A {
        B[] b;
    }
    class A {
        List<B> b;
    }
    
    1. Q: 用哪个好点?有区别么?

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

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

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