栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java中的持久数据结构

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中的持久数据结构

我想显而易见的选择是:

o切换到临时数据结构(构建器)进行更新。这是很正常的。

StringBuilder
用于
String
操纵例如。举个例子。

Person p3 =    Builder.update(p)    .withAddress(        Builder.update(p.address())       .withCity("Berlin")       .build()    )    .build();

o始终使用持久性结构。尽管似乎有很多复制,但实际上您应该共享几乎所有状态,因此它远没有看起来那么糟糕。

final Person p3 = p    .withAddress(        p.address().withCity("Berlin")    );

o将数据结构分解为大量变量,并与一个庞大且令人困惑的构造函数重新组合。

final Person p3 = Person.of(    p.name(),    Address.of(       p.house(), p.street(), "Berlin", p.country()    ),    p.x(),    p.y(),    p.z() );

o使用回调接口提供新数据。甚至更多样板。

final Person p3 = Person.of(new PersonInfo(    public String  name   () { return p.name(); )    public Address address() { return Address.of(new AddressInfo() {       private final Address a = p.address();       public String house  () { return a.house()  ; }       public String street () { return a.street() ; }       public String city   () { return "Berlin"   ; }       public String country() { return a.country(); }    })),    public Xxx     x() { return p.x(); }    public Yyy     y() { return p.y(); }    public Zzz     z() { return p.z(); } });

o使用讨厌的技巧使字段暂时可用于代码。

final Person p3 = new PersonExploder(p) {{    a = new AddressExploder(a) {{        city = "Berlin";    }}.get();}}.get();

(非常有趣的是,我刚刚放下了Chris Okasaki的“纯功能数据结构”的副本。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506502.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号