火狐谷歌360 收藏夹共享_教程:使用Google收藏夹编码

2023-11-11 08:40

本文主要是介绍火狐谷歌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.ListMap

编写单元测试时,一种常见的模式是实例化一个List并向其中添加一些固定装置,稍后将在测试中使用它们确定正确的结果。 让我们看一个例子:


Google收藏夹提供了一种简洁的列表类型,可以更加轻松地实例化您的固定装置,使其固定不变,从而在声明数据时确保正确的结果:


ImmutableList及其同级对象ImmutableMapImmutableSet不仅提供Collection的视图,这是使用Collections.unmodifieableList()时获得的视图,而且是一个真正的不可变的Collection ,它将永远不会改变。

增强的馆藏类型

Google Collections库提供了一组增强的Collections类型和实现。 在不可变类型旁边,还有另一个有趣的类别-Multimap类型。 Multimap实现允许重复的键值对。 使用Java Collections Framework的传统方法来实现这种行为是非常棘手的:


使用Google Collections的Multimap实施将一个键关联多个值很容易。 它还允许您检索特定键的所有值,并将其转换回传统的java.util.Map


这种类型的Collection可能有用的一个常见问题是,将信息与创建包装类不合理的特定类型相关联。 一个示例可以是关联有关用户的各种信息以将其显示在网站上。

如果您想知道的话,这种Multimap还有一个不可改变的对应对象。 尽管名称表示使用类似地图的数据结构,但也有Multimap类型的ListSet实现。

功能性物品

Google Collections库附带了一些好东西,类似于一种实用的方法。 例如,如果您熟悉Groovy,那么以下代码对您来说应该是日常工作。 有一些类用于定义函数,而实用程序类则可以使用这些函数来转换传统或Google的收藏集。 让我们看一个例子:


Google集合的实用工具类Lists提供了一种称为transform的方法,该方法可让您传入List和Function实现,以返回List的转换视图。 这里的一切也都泛化了。 函数定义了期望的类型以及将要返回的类型。 函数的返回类型产生转换后的列表的类型。

使用实用程序类Ordering,您甚至可以订购转换结果。 实用程序类Maps也提供了transform方法。 不幸的是,没有等效的集合。

Iterables是另一个非常整洁的Google Collections实用程序类,它为List和Set实现提供了一些类似于功能的方法:

使用Iterables,您可以提供简单的类型安全的搜索功能。 此外,还有一种方法可让您根据谓词过滤ListSet


terables有更多类似于功能方法的实用方法。 它使您可以组合两个或多个Iterable,并提供用于对Iterable进行分区或删除元素的方法

摘要

Google收藏库为开发人员每天面临的许多问题提供了实用的解决方案。 这些解决方案经过大量开发人员的精心设计,测试和批准。 由于Google使用该库作为其内部代码库,因此他们不太可能放弃对该库的支持。 在最终版本中,该版本带来了稳定的API,因此Google Collections可以用于任务关键型应用程序。


翻译自: https://jaxenter.com/tutorial-coding-with-google-collections-100157.html

火狐谷歌360 收藏夹共享

这篇关于火狐谷歌360 收藏夹共享_教程:使用Google收藏夹编码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/388858

相关文章

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

Go语言使用select监听多个channel的示例详解

《Go语言使用select监听多个channel的示例详解》本文将聚焦Go并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个Channel,实现多任务处理、超时控制和非阻... 目录一、前言:为什么要使用select二、实战目标三、案例代码:监听两个任务结果和超时四、运行示例五

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比