ps做网站头部的图网站建设站长
news/
2025/9/23 7:45:08/
文章来源:
ps做网站头部的图,网站建设站长,马云做的国外的网站叫什么名字,大数据查询Guava是一个开放源代码库#xff0c;其中包含许多Java类#xff0c;由Google编写。 它是杂项实用程序函数和类的潜在有用来源#xff0c;我敢肯定#xff0c;许多开发人员以前已经写过自己#xff0c;或者只是想要并且从来没有时间编写它们。 这是使用它的5个充分理由其中包含许多Java类由Google编写。 它是杂项实用程序函数和类的潜在有用来源我敢肯定许多开发人员以前已经写过自己或者只是想要并且从来没有时间编写它们。 这是使用它的5个充分理由 1.集合初始化器和实用程序 通用同构集合是Java中的一个很棒的功能但是有时它们的构造有点太冗长例如 final MapString, MapString, Integer lookup new HashMapString, MapString, Integer(); Java 7通过允许非正式地称为Diamond运算符的有限形式的类型推断以一种真正通用的方式解决了这个问题。 因此我们可以将上面的示例重写为 final MapString, MapString, Integer lookup new HashMap(); 在较早的Java发行版中实际上已经可以对非构造函数方法进行这种推断并且Guava为现有的Java集合提供了许多现成的构造函数。 上面的例子可以写成 final MapString, MapString, Integer lookup Maps.newHashMap(); Guava还为Maps Sets等人的收藏提供了许多有用的实用程序功能。 类。 我最喜欢的是Sets.union和Sets.intersection方法这些方法返回集合上的视图而不是重新计算值。 2.有限的功能样式编程 Guava提供了一些常用的方法来以功能样式传递方法。 例如许多功能性编程语言所具有的map函数以Collections2.transform方法的形式存在。 Collections2还具有过滤器方法该方法允许您限制集合中的值。 例如要从一个集合中删除为空的元素并将其存储在另一个集合中可以执行以下操作 Collection? noNullsCollection filter(someCollection, notNull()); 重要的是要记住在这两种情况下该函数都返回一个新集合而不是修改现有集合并且延迟地计算了所得集合。 3.多图和双图 Map的真正常见用法是为单个键存储多个值。 使用标准Java集合通常通过使用另一个集合作为值类型来完成。 不幸的是这最终涉及许多仪式就初始化收藏而言这些仪式需要重复。 多图可以将其清除很多例如 MultimapString, Integer scores HashMultimap.create();
scores.put(Bob, 20);
scores.put(Bob, 10);
scores.put(Bob, 15);
System.out.println(Collections.max(scores.get(Bob))); // prints 20 还有一个双向的BiMap类-也就是说它强制值和键具有唯一性。 由于值也是唯一的因此可以反向使用BiMap。 4.简单的哈希码和比较器 想要从其字段的哈希码为Java中的类生成哈希码是很常见的。 Guava在Objects类中为此提供了一种实用程序方法下面是一个示例 int foo;
String bar;Override
public int hashCode() {return Objects.hashCode(foo, bar);
} 如果要定义哈希码方法请不要忘记保持平等契约 。 比较器是另一个示例其中经常编写比较器涉及将一系列操作链接在一起。 Guava提供了一个ComparisonChain类以简化此过程。 这是一个带有int和String类的示例 int foo;
String bar;Override
public int compareTo(final GuavaExample o) {return ComparisonChain.start().compare(foo, o.foo).compare(bar, o.bar).result();
}5.防御性编码 您是否发现自己定期为方法编写某些前提条件 有时这些内容可能不必要地冗长或者无法直接传达意图。 Guava为Preconditions类提供了一系列常见的前提条件。 例如代替if语句和显式异常throw… if (count 0) {throw new IllegalArgumentException(must be positive: count);
} …您可以使用一个明确的前提 checkArgument(count 0, must be positive: %s, count);结论 能够用guava中的类替换现有的库类可以帮助您减少需要维护的代码量并可能提高生产力。 还有其他选择例如Apache Commons项目。 可能是您已经使用并了解了这些库或者比Guava方法更喜欢它们的方法和api。 Guava确实有一个Idea Graveyard –可让您对Google工程师认为是库的限制或错误的设计决策有一些了解。 您可能不会单独同意这些选择此时您将回到编写自己的库类。 总体而言尽管Guava鼓励简洁而礼貌的风格但Guava的某些适当应用可以帮助许多Java项目。 原文 http //insightfullogic.com/blog/2011/oct/21/5-reasons-use-guava/ 参考来自Lviv博客Java用户组的 JCG合作伙伴 Andriy Andrunevchyn 使用Guava的5个理由 。 翻译自: https://www.javacodegeeks.com/2013/06/5-reasons-to-use-guava.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911812.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!