火狐谷歌360 收藏夹共享_教程:使用Google收藏夹编码
火狐谷歌360 收藏夹共享
Google的Collections库的任务是提供一组具有稳定API的新Collection类型和实现,就像JDK一样。 它的开发主要考虑了Google的需求以及强烈遵守Java Collection Framework合同的概念。
该项目始于2007年,谷歌花了相当长的时间才将其发布到了几周前的最终版本中[3]。 尽管Google不能在最终版本发布之前就承诺提供稳定的API,但即使在早期版本中,Google Collections也获得了很大的吸引力。
获取示例代码
您可以从github [4]下载预先打包的基于maven的项目中显示的所有代码示例。 它使用最新的Google Collections版本,在撰写本文时为1.0。 JUnit TestCase中提供了此处介绍的所有内容,您可以使用Maven或您最喜欢的IDE来运行它。
实用程序类
Google Collections提供了一堆非常有用的实用程序类和方法,可以节省大量的样板代码。 第一个示例展示了如何使用Java的Collections Framework的传统方法实例化通用Map :
Google Collections的实用程序类与静态导入相结合,使事情变得容易得多:
请注意,您不会收到有关未经检查的分配的任何编译器警告。 Google确保其库具有良好的泛型和类型安全性。 这些实用程序类及其工厂方法也可用于java.util.List和Map 。
编写单元测试时,一种常见的模式是实例化一个List并向其中添加一些固定装置,稍后将在测试中使用它们确定正确的结果。 让我们看一个例子:
Google收藏夹提供了一种简洁的列表类型,可以更加轻松地实例化您的固定装置,使其固定不变,从而在声明数据时确保正确的结果:
ImmutableList及其同级对象ImmutableMap和ImmutableSet不仅提供Collection的视图,这是使用Collections.unmodifieableList()时获得的视图,而且是一个真正的不可变的Collection ,它将永远不会改变。
增强的馆藏类型
Google Collections库提供了一组增强的Collections类型和实现。 在不可变类型旁边,还有另一个有趣的类别-Multimap类型。 Multimap实现允许重复的键值对。 使用Java Collections Framework的传统方法来实现这种行为是非常棘手的:
使用Google Collections的Multimap实施将一个键关联多个值很容易。 它还允许您检索特定键的所有值,并将其转换回传统的java.util.Map :
这种类型的Collection可能有用的一个常见问题是,将信息与创建包装类不合理的特定类型相关联。 一个示例可以是关联有关用户的各种信息以将其显示在网站上。
如果您想知道的话,这种Multimap还有一个不可改变的对应对象。 尽管名称表示使用类似地图的数据结构,但也有Multimap类型的List和Set实现。
功能性物品
Google Collections库附带了一些好东西,类似于一种实用的方法。 例如,如果您熟悉Groovy,那么以下代码对您来说应该是日常工作。 有一些类用于定义函数,而实用程序类则可以使用这些函数来转换传统或Google的收藏集。 让我们看一个例子:
Google集合的实用工具类Lists提供了一种称为transform的方法,该方法可让您传入List和Function实现,以返回List的转换视图。 这里的一切也都泛化了。 函数定义了期望的类型以及将要返回的类型。 函数的返回类型产生转换后的列表的类型。
使用实用程序类Ordering,您甚至可以订购转换结果。 实用程序类Maps也提供了transform方法。 不幸的是,没有等效的集合。
Iterables是另一个非常整洁的Google Collections实用程序类,它为List和Set实现提供了一些类似于功能的方法:
使用Iterables,您可以提供简单的类型安全的搜索功能。 此外,还有一种方法可让您根据谓词过滤List或Set :
terables有更多类似于功能方法的实用方法。 它使您可以组合两个或多个Iterable,并提供用于对Iterable进行分区或删除元素的方法 。
摘要
Google收藏库为开发人员每天面临的许多问题提供了实用的解决方案。 这些解决方案经过大量开发人员的精心设计,测试和批准。 由于Google使用该库作为其内部代码库,因此他们不太可能放弃对该库的支持。 在最终版本中,该版本带来了稳定的API,因此Google Collections可以用于任务关键型应用程序。
翻译自: https://jaxenter.com/tutorial-coding-with-google-collections-100157.html
火狐谷歌360 收藏夹共享
火狐谷歌360 收藏夹共享_教程:使用Google收藏夹编码相关推荐
- svn取消文件夹图标_如何去掉svn文件夹上面的符号
如何去掉svn文件夹上面的符号 如何去掉svn文件夹上面的符号 第一步:建立一个名字叫做remove-svn-folders.reg的文本(先建立txt文件,然后粘贴内容后再修改文件名字),记得后缀要 ...
- 谷歌账号电子邮件怎么改_如何使用Google仅搜索您的电子邮件,事件和其他内容...
谷歌账号电子邮件怎么改 You probably use Google search to find out everything from movie showtimes to how tall J ...
- 谷歌maps菜单语言设置_如何在Google Maps中测量跑步,骑自行车和徒步旅行的距离...
谷歌maps菜单语言设置 Getting directions in Google Maps lets you easily see how far away the destination is. ...
- 谷歌日历一键删除日程_如何在Google日历中删除新的提醒
谷歌日历一键删除日程 In December 2015, Google added reminders to the Google Calendar app for Android and iOS u ...
- 谷歌云端硬盘下载文件_如何为Google云端硬盘上的文件创建共享下载链接
谷歌云端硬盘下载文件 Google Drive is great-you can access your files from anywhere, on pretty much any device, ...
- 浏览器兼容性总结: IE 火狐 谷歌 360 搜狗
360的是用IE的内核,如果你的机子IE是什么版本,360也是一样.所以,360可以不用测试! 1.在同一个文件里针对不同的浏览器写她们各自调用的样式 针对属性:比如容器的height属性 IE6 专 ...
- 谷歌云端硬盘下载文件_如何更改Google云端硬盘中文件的所有者
谷歌云端硬盘下载文件 By default, you're the owner of any file you upload or create on Google Drive. However, i ...
- 谷歌云端硬盘下载文件_如何使用Google云端硬盘中的Microsoft Office文件
谷歌云端硬盘下载文件 Microsoft Office files are still very common, but if you're more of a Google Docs, Sheets ...
- python打开文件夹对话框_文件对话框打开文件夹中的文件(tkinter)
我想把它实现到我自己的代码中,但是当我运行这个(没有我的代码,只有你看到的代码)时,所有显示的文件夹都是空的,我实际上不能打开任何东西.在from tkinter import * from tkin ...
- 谷歌云使用账号密码_如何使用Google密码检查
谷歌云使用账号密码 Google has a tool designed to securely analyze your passwords against a database of ones t ...
最新文章
- WebService 基础
- OSI网络七层模型简明教程
- 在Apache上配置防盗链功能和隐藏版本号
- java 多态 降低耦合_java多态
- php冒泡排序和快速排序笔记
- php return直接输出,PHP中return用法详细解读
- Transformer太深不行?NUS字节发现注意力坍缩,提出重注意机制!
- Git版本控制的原理
- python的统计库_Python-Scipy库-卡方分布统计量计算
- 88个塑胶模具设计中常用知识点!
- MyEclipse里自制JSP模板
- mac切换网卡|IP
- 如何破解私域留存?四大核心环节拆解锁客关键能力
- 信息安全等级保护分为几个级别呢?
- php网页设计导航栏代码,CSS导航栏及弹窗示例代码
- 微信小程序-点击按钮退出小程序
- 使用Xtext/Xtend 实现域专用语言DSL(2)
- 克尼汉的c程序设计语言,c程序设计语言 英文版
- 奥西400服务器维修,奥西TDS400故障代码
- 谁需要,可以去微软注册@Live.com的邮箱
热门文章
- 企业遗产数据管理行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- PowerCLI批量创建VMware虚拟机
- 重装系统会不会丢失mysql表_重装系统文件会丢失吗|电脑重装系统会不会丢失文件...
- C#操作CAD-读取和修改数据
- 天眼使用指南--分析平台
- 微信小程序真的失败了吗?
- 21天战拖记——Day16:系统化,接着填“衣柜整理法”的坑(2014-05-19)
- mysql 学习 一
- JSON的几种拼接方式
- 基于红外光谱的汽油辛烷值预测——有监督学习神经网络的实现