阿里云ODPS普惠算力再升级,Data+AI全产品降价低至59元! 了解详情
写点什么

Java 集合类、Skip 列表以及 Google

  • 2007-10-14
  • 本文字数:1154 字

    阅读完需:约 4 分钟

虽然有时认为是理所当然,但 Java Collections API 无疑在每天的 Java 软件开发中扮演着重要的角色。然而 API 和相关的项目从未停止过发展。Alex Miller最近提到了 Java 6 中 API 的变化:

其中尤其引发他兴趣的是 SkipList ,它不像许多普通的 CS 数据接口,相对来说是个新的重新:

skip 列表是个概率性的的数据结构,由 William Pugh 在 1990 年发明,列表基于平行的链接列表,效率相对二叉搜索树(对于大多数操作平均需要 O(log n) 时间)有显著改善。

Google 也一直致力于 collections 领域的工作,并发布了一套建立于标准的 Java Collections Framework 的实现类。虽然还是 alpha 版本 ,但 Google 已经把它们使用在自己的许多服务中,比如 GMail,Reader 和 Blogger。除了专注于为既有的 Java Collections Framework 增加复杂性和灵活性以外,Google 也添加了许多的 collections 和工具类来使得编码变得更简单并提高代码可读性。 其中最值得注意的 collection 是:

  • BiMap - 一个确保唯一值并支持反转视图的 Map
  • Multiset - 一个可以像 List 那样包含重复的值,但又有像 Set 那样的独立顺序的 Collection。通常用于描绘柱状图。
  • Multimap - 类似于 Map,但可以包含重复的键。拥有子类 SetMultimap 和 ListMultimap,提供更多特别的行为。
  • ClassToInstanceMap - 一个特殊化的 Map,它的键是 class 而对应的值 class 的实例。

Google 还包含许多跟这些新的 collection 类配合使用的工具类。其中包含:

  • Comparators - 自然顺序的,复合的,支持 null,随机的……
  • IteratorsIterables - 基于 Element 的结构,循环,连接,分割,通过条件过滤,使用函数进行转换
  • Lists,SetsMaps - 过多的方便的工厂方法及其他
  • PrimitiveArrays - 原始数组的“装箱”/“拆箱”
  • Object.equals 和 hashCode - 提供内建的对 null 的处理

Public Object 使用 Google 的 Collection 库编写了大量的示例。这些示例 中包含使用Java Collections/Utilities 的代码片段,也包含当使用Google 的Collection 库时的代码样式。对于如何使用这个类库, MultiMap Objects.equal 和 hashCode 提供了很好的范例。Google 的 Collection 库遵守 JDK 接口,现在是用 1.5 的 JDK 进行开发,并在考虑未来对 JDK1.6 的支持。这里是完整的API FAQ

查看英文原文: Java Collections, Skip Lists, and Google

2007-10-14 09:501667
用户头像

发布了 127 篇内容, 共 46.9 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

MetaForce佛萨奇2.0系统开发DAPP搭建

薇電13242772558

dapp开发

成为千行百业数字化转型催化剂的,竟然是它!

元年技术洞察

微服务 低代码 数字化转型

RocketMQ 重试机制详解及最佳实践

阿里巴巴云原生

阿里云 RocketMQ 云原生

Wallys/ WiFi6 MiniPCIe Module 2T2R 2×2.4GHz 2x5GHz MT7915 MT7975 /industrial mini pcie card

wallysSK

MT7915

5种GaussDB ETCD服务异常实例分析处理

华为云开发者联盟

数据库 后端 华为云

声网深度学习时序编码器的资源预测实践丨Dev for Dev 专栏

声网

深度学习 算法 模型

Python图像处理丨5种图像处理特效

华为云开发者联盟

Python 人工智能 华为云 图像处理

AOP 的九点核心概念和作用

千锋IT教育

【web 开发基础】PHP 自定义函数之函数的返回值-PHP 快速入门 (27)

迷彩

web开发基础 PHP基础 11月月更 return

java培训学习该怎么做?

小谷哥

离职、被毕业?职场打工人的最强生存指南!

千锋IT教育

PolarDB-X 开源分布式数据库进阶营免费报名中!

阿里云数据库开源

MySQL 数据库 阿里云 开源 PolarDB-X

消息队列 RocketMQ 5.0:从消息服务到云原生事件流平台

阿里巴巴云原生

阿里云 RocketMQ 云原生

使用 Fiori Elements 框架创建 UI5 Web 应用

汪子熙

web开发 Fiori SAP UI5 ui5 11月月更

深究并行编程Parallel类中的三大方法 (For、ForEach、Invoke)和几大编程模型(SPM、APM、EAP、TAP)

C++后台开发

多线程 后端开发 linux开发 C++开发 并行编程

终于有人把这份10 万字节详细面试笔记(带完整目录) 整理出来了

钟奕礼

Java java程序员 java面试 java编程 Java 面试题

低门槛上手快!火山引擎VeDI这样满足数据分析新需求

字节跳动数据平台

大数据 BI

大数据培训学习需要什么基础

小谷哥

大数据培训和自学哪种方式更好

小谷哥

前端培训班中如何学习前端开发技术

小谷哥

微服务中的服务发现是什么?

API7.ai 技术团队

微服务 服务发现 API网关 APISIX

【LeetCode】统计匹配检索规则的物品数量Java题解

Albert

算法 LeetCode 11月月更

PCB设计必须考虑的8种安全距离,搞错1种都出大问题!

华秋PCB

PCB PCB设计

腾讯T4带你玩转Spring全家桶

钟奕礼

Java java程序员 java面试 java编程

自学前端技术怎么样,有必要去吗

小谷哥

首批招募 50 家!「龙腾社区生态发展计划」正式发布

OpenAnolis小助手

开源 操作系统 云栖大会 龙蜥社区 合作

Meta Force 原力元宇宙公排系统开发详情

开发微hkkf5566

遭MQ连连干翻后的醒悟!含恨码出5本MQ学习手册助力秋招之旅

小二,上酒上酒

面试 RocketMQ 大厂 大厂面试

灵雀云ACP 斩获“2022金边奖-最佳云原生边缘云平台”

York

容器 云原生 5G 边缘计算 边缘云

极客时间架构训练营模块六作业

李晨

架构

爆肝了!阿里出版的这份Spring Security源码手册,狂揽GitHub榜首

小二,上酒上酒

Java 面试 spring security 大厂 大厂面试

Java集合类、Skip列表以及Google_Java_Scott Delap_InfoQ精选文章