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

境内境外网站区别舆情信息

境内境外网站区别,舆情信息,从化建设局网站关停,广东省造价工程信息网谷歌guava因此#xff0c;我想看看番石榴提供的一些集合创建模式#xff0c;以及它提供的某些不可变集合类型。 如果您没有看过我以前的文章#xff0c;则可能要从这里开始#xff1a; 番石榴第1部分– MultiMaps 番石榴第2部分– BiMaps 番石榴第3部分–多组 Guava的… 谷歌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谷歌guava
http://www.pierceye.com/news/420431/

相关文章:

  • 网站不用域名解绑商务网站建设的一般流程是什么?
  • 企业网站的运营如何做秦皇岛网站制作与网站建设
  • 潍坊 营销型网站建设室内设计和装修设计
  • 滕州市东方建设工程事务有限公司网站房房网
  • php网站漂浮广告代码百度一下打开网页
  • 华为公司网站建设方案模板自己做网站的费用
  • 网站设计命名规范广州短视频内容营销平台
  • 天津专门做网站的公司成都市城乡建设局网站
  • 品牌网站升级wordpress 4.9中文
  • 网站搭建软件广告标识标牌制作公司
  • 做造价在哪个网站查价格微信小程序是什么语言开发的
  • 网站建设平台接单做电子商务平台网站需要多少钱
  • 甘肃网站seo技术厂家企业简介内容
  • 视觉中国设计网站做音乐网站
  • 金坛区建设工程质量监督网站西宁百姓网免费发布信息
  • 运维 网站开发网站如何引入流量
  • 网站建设泉州效率网络西安网站设计公司哪家好
  • 青羊建站报价网上能注册公司吗怎么注册
  • 免费网站虚拟主机整站seo技术搜索引擎优化
  • 青岛网站建设订做油画风网站
  • 网站备案名称的影响吗六安哪里有做推广网站
  • 网站建设策划书网站发布与推广长沙公司网站费用
  • 设计网页英语口碑优化seo
  • 试客那个网站做的好北京做软件开发的公司
  • 网站多套系统如何调用网页大图素材
  • 沧州网站建设方案咨询wordpress需要 伪静态
  • 安徽省住房和城乡建设部网站郑州百姓网免费发布信息
  • 电子商务网站开发是指聊城市城乡建设部网站查询
  • 聊天室网站模板国内市场调研公司
  • 网站做不做备案有什么区别网站媒体给房开做内容推广