b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

c multimap 使用 Google Guava 美化你的 Java 代码:1(5)

电脑杂谈  发布时间:2018-02-01 20:07:32  来源:网络整理

从语法上来看,这行代码非常优雅!那么我们也来看一下使用Google Collections时应该怎么做。Google Collections给我们提供了前面提到的Iterables类,我们可以使用Iterables类来实现过滤和转换(你可以使用Google Collections里的Collections2来实现同样的功能)。

multimap 删除_c multimap_multimaps

那现在我们就来看一下如何实现和Steve的那行Scala代码一样的功能,虽然看起来没有Scala实现的那么优雅,但却是使用Predicates和Ordering类来实现上面功能的一种方式。

虽然跟Scala提供的语法糖有点差距(很明显我们还是需要我们的“withFirstName”条件谓词以及“byLastName”比较器),但至少这比我们不使用Google Collections接近多了!(如果采用Stephen的流式接口的话,代码会更易读)。

Kevin Bourrillion在另一篇关于使用Google Collections编写函数式的Java的文章中提到:

语法很烂。而且同时这在语言本身改变之前只是权宜之计,到那时我们才真正的选择最佳的语法并开始真正的函数式编程。所以我还没决定我会投入多大的努力到Function/Predicate中去(这段真的很难翻译..我去..)

在下篇也是最后一篇关于Google Collections和Guava的博文中,我们将看到如果使用Google Collections操作Set和Map,以及使用Preconditiones来做验证,而且我们带你体验一下奇妙的Multimap集合类以及如何进行切分!拭目以待吧!

在本系列博客的前三章,我们大概介绍了Google的Guava类库和Collections类库,作为一名Java开发人员,相信你会从使用这些类库,进而来减少在你项目中使用样板文件的数量而获益。在本系列博客的最后一篇中,我将带大家来了解一个会让你完全爱上并沉浸于其中的的集合工具类-Multimap。我们将带大家了解下如何使用Google Collections的Preconditions来做校验,但是在此之前,先让我们来了解下如何对Set和Map进行交集、并集和差集的运算。

有时,当我们需要去对两个Set的取交集、并集和差集的时候,那是一件相关麻烦的事情,而且代码看起来很凌乱。经常情况,你会以一遍又一遍的循环来结束这种做法。但是如果我们使用Google Collections提供的Sets类就可以轻而易举的完成这些操作,并且是完全免费的!

From the Public Object blog:

“不同于惯例,这些方法没有做任何的拷贝。相反,他们返回了代表了这两个集合的视图。 但是在有些情况下,这些拷贝又很有用,我们可以用immutableCopy类中提供的一个便利方法来实现拷贝”

同样地,对于Map而言,我们可以像下面这样处理:

如果用MapDifference类,我们还可以这样:

Thank you, Google Collections!

早在初夏的时候,一个叫刚刚加入我们的同事Bent André向我介绍了用Preconditions进行校验的想法,但是,直到最近我才发现Google Collections实际上已经包含了相应的实现(我们自己也已经有了相似的实现)。

那么这个实现具体是什么样子的呢?校验就是要求我们准确无误的做一些事情,通常情况下,它看起来就是类似下面这样的代码:

if (count <= 0) { throw new IllegalArgumentException("must be positive: " + count); }


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-64410-5.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 中井和哉
      中井和哉

      记得咩咩在有一期综艺节目里曾经说过他最爱吃的是妈妈的红烧肉忘了那个节目了不过大家有兴趣的可以收收看

    热点图片
    拼命载入中...