当前位置: 首页 > news >正文

官方网站建设手机银行网页代码怎么写

官方网站建设手机银行,网页代码怎么写,在线制作logo免费生成图片,网站建设微信官网开发因此#xff0c;我想看看番石榴提供的一些集合创建模式#xff0c;以及它提供的某些不可变集合类型。 如果您没有看过我以前的文章#xff0c;则可能要从这里开始#xff1a; 番石榴第1部分– MultiMaps 番石榴第2部分– BiMaps 番石榴第3部分–多组 Guava的所有集合实… 因此我想看看番石榴提供的一些集合创建模式以及它提供的某些不可变集合类型。 如果您没有看过我以前的文章则可能要从这里开始 番石榴第1部分– MultiMaps 番石榴第2部分– BiMaps 番石榴第3部分–多组 Guava的所有集合实现都包含一个或多个静态create方法这些方法可以实现您所期望的并且通常提供一种更为简洁的实例化集合类的方法。 这是创建ArrayListMultimap的两种不同方法 MultimapString,String multimap1 new ArrayListMultimapString,String();MultimapString,String multimap2 ArrayListMultimap.create(); 好的因此其中没有太多内容在此示例中为12个字符但是从我的角度来看您正在删除一些冗余我们真的需要两次重现泛型类型信息吗 很好很遗憾Sun没想到在创建Java 5时向其Collection类型添加create方法 同样番石榴在这里为您提供帮助并提供了一些用于处理标准集合类型的实用程序类。 com.google.common.collect.Lists com.google.common.collect.Sets和com.google.common.collect.Maps 这些都提供了几种格式为new CollectionType () 下面是一些示例 ListString myList1 new ArrayListString(); //old wayListString myList2 Lists.newArrayList(); //guava waySetString mySet1 new HashSetString(); //old waySetString mySet2 Sets.newHashSet(); //guava way 由于“ new”方法是静态的因此您可以通过使用静态导入来剪切出更多字符即… import static com.google.common.collect.Lists.newArrayList;import static com.google.common.collect.Sets.newHashSet;//elsewhere in codeListString myList2 newArrayList();SetString mySet2 newHashSet(); 明智的按键方式是使用番石榴方法并不能真正节省很多所以我想这和其他任何东西都一样。 我个人认为番石榴的方法读起来要好得多尽管我认为我不会使用静态导入。 到目前为止还不错但是几乎没有崩溃的余地下一步呢 不变的收藏 这些本质上是集合对象创建后就无法更改并且出于各种原因很有用。 Guava为大多数常规Collection接口提供了Immutable实现 ImmutableList ImmutableSet和ImmutableMap 以及某些Guava集合接口 ImmutableMultimap等的不可变实现。 我对它们的主要用途是创建静态常量。 例如假设您出于某种目的需要对一组字符串进行硬编码。 一种做到这一点的方法可能是例如。 private static final SetString farmAnimals new HashSetString(Arrays.asList(Cow,Pig,Sheep)); 它看起来并不好看并且存在一个主要问题。 任何可以访问此Set的代码都可以对其进行更改这可能导致各种意外问题。 我们不能只使用Collection.unmodifiableSet(Set s)来解决这个问题吗 好吧在这个特定的例子中我想我们可以写…… private static final SetString farmAnimals Collections.unmodifiableSet(new HashSetString(Arrays.asList(Cow,Pig,Sheep))); …但是这开始显得有些笨拙而且无法unmodifiable方法还有另一个问题。 它们仅返回集合的不可修改视图如果您引用原始集合则仍然可以对其进行更改 尽管在上一个示例中这可能不是问题但我仍然认为更好的方法是使用ImmutableSet private static final SetString farmAnimals ImmutableSet.of(Cow,Pig,Sheep); 是不是更好呢 还有其他几种创建它们的方法下面是一些示例 // use copyOf()...public void doStuffWithList(ListObject unsafeList) {ListObject safeList ImmutableList.copyOf(unsafeList);}// use a builder...public MapString,Integer makeImmutableMap() {ImmutableMap.BuilderString,Integer mapBuilder new ImmutableMap.BuilderString,Integer();EntryString,Integer entry null;while((entry getEntry()) ! null) {mapBuilder.put(entry.getKey(), entry.getValue());}return builder.build();}那么使用不可变集合还有其他优势吗 好吧有几个。 它们可以大大简化逻辑尤其是在多线程环境中。 如果线程仅具有对对象的读取访问权限则您无需担心复杂的线程同步逻辑 创建它们后它们的使用效率也略有提高。 如果一个集合事先知道它需要存储什么并且永远不会有任何变化则可以节省各种时间和空间。 例如大多数ArrayLists或HashMaps的实现都会为新对象保留一些未使用的空间因此它们不必不断调整自身大小。 如果您知道永远不会有任何新对象则无需这样做。 最后您还可以将它们用作哈希键。 如果集合的内容无法更改那么它的哈希码也不会改变 有什么缺点吗 当然不可变对象有一个很大的缺点那就是显而易见的。 您不能更改它们 如果您需要更改集合则首先需要对其进行复制。 在某些情况下例如并发性很重要您实际上可能希望采用这种方法。 但是在集合包含许多对象的情况下这将是不切实际的并且您可能需要一个老式的可变集合如果需要请完成同步代码。 唯一需要注意的另一件事是仅仅因为您的集合是不可变的并不意味着它们中包含的对象是自动的。 如果可以在不可变集合中获得对对象的引用那么没有什么可以阻止您更改该对象上的任何可变状态 因此最佳实践是确保您保存在不可变集合中的任何东西本身都是不可变的 参考 Toms Programming Blog博客上的JCG合作伙伴 Tom Jefferys从Google Guava创建的收藏和不变性 。 翻译自: https://www.javacodegeeks.com/2012/12/collection-creation-and-immutability-with-google-guava.html
http://www.zqtcl.cn/news/459067/

相关文章:

  • 网站采集来源制作好网站
  • 哪个网站有工笔教程免费物流公司网站模板
  • 网站怎么做才有收录西安建设工程信息网人员查询
  • 用dedecms做的网站电子商务公司名称大全简单大气
  • 网站建设的业务员wordpress font awesome
  • 艺术公司网站定制中心怎么搜索网站搜索量
  • 陕西网站建设设计公司西部数码网站管理助手破解版
  • 网站建设框架构建正规的app网站开发
  • 离退休工作网站建设方案wordpress在线浏览pdf
  • 昆明免费网站制作wordpress自定义路由
  • html5视频网站开发江西响应式网站制作
  • 网站照片加水印家装公司十大口碑排名
  • 做网站还有用PHP网站开发如何建立vip
  • 东莞广告公司东莞网站建设辽宁城乡建设部网站
  • 公司网站开发详细流程php网站开发优点
  • 广东网站建设多少钱比较大气的网站
  • asp.net怎么做登录网站网站建设服务网络服务
  • 网站备案级别做公司网站要多少钱
  • 湛江网站seo网站定制排名
  • 为什么网站之有首页被收录企业网站发布图片文章
  • 做网站要准备内蒙做网站
  • 邯郸市搞网站服务务的吗网站建设怎么在图片上加字
  • 卡片风格网站我想做跑腿网站怎么做
  • 公司网站建设前期情况说明如何找厂家地址
  • 超值的郑州网站建设wordpress 移除 新闻
  • 长春网络营销网站徐州手机模板建站
  • 微网站开发+在线商城建设局招标网站
  • 网站开发的基本过程关岭做网站
  • 高端网站哪种好WordPress媒体库丢失
  • 澄迈网站新闻建设宣传视频