AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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:501541
用户头像

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

关注

评论

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

Midjourney-未来机甲

AIGC.TWang

未来世界 AI绘画 MidJourney

DistilQwen2:通义千问大模型的知识蒸馏实践

阿里云大数据AI技术

人工智能 知识蒸馏 通义千问

征程 6E camera diag sample

地平线开发者

自动驾驶 算法

AutoSway(AE风吹自由摇曳摆动MG动画脚本) 中文汉化版

Rose

1400+自定义ps形状集合

Rose

这AI队友哪智障了?这AI队友可太棒了!| 《易点新的》专访

网易伏羲

游戏AI

DolphinScheduler集成Arthas实现接口调用监控,提升调度任务可靠性

白鲸开源

工作流调度 Apache DolphinScheduler #开源

昆仑万维重磅发布天工AI高级搜索功能,做最懂金融投资、科研学术的AI搜索

新消费日报

加锁失效,非锁之过,加之错也|京东零售供应链库存研发实践

京东零售技术

后端 加锁

Overlord(AE制作MG动画神器脚本) 中文版-mac&win

Rose

淘宝详情API接口全解析:如何获取与应用

代码忍者

API 接口 pinduoduo API

中文汉化 AE/PR去朦胧除雾霾调色插件 ClearPlus

Rose

软件测试学习笔记丨Vue学习笔记-基本介绍

测试人

软件测试

【征程 6 工具链性能分析与优化-2】模型性能优化建议

地平线开发者

自动驾驶; #算法

漆包线自动称重系统

万界星空科技

mes 智能称重系统 电子称重系统 万界星空科技 漆包线工厂

e3d插件下载 - Video Copilot Element 3D for mac-AE三维模型插件

Rose

经济下行,当下企业如何破局?

禅道项目管理

需求管理 IPD 市场分析 IPD落地 IPD培训

ps智能磨皮滤镜插件mac版Imagenomic Portraiture 4下载安装教程

Rose

Digital Film Tools Rays for Mac中文破解版 ps光束滤镜

Rose

低代码平台服务编排提升

鲸品堂

低代码 交付工具 企业号 2024年11月PK榜

基于IM场景下的Wasm初探:提升Web应用性能|得物技术

得物技术

rust web前端 Wasm

FilmUnlimited PowerGrades(柯达胶片模拟电影预设)

Rose

直接导入编辑MKV/MOV/FLV格式素材视频解码器AE/PR插件Influx

Rose

如何选择合适的TikTok网络节点

Ogcloud

代理IP tiktok运营 TikTok养号 tiktok节点 tiktok网络

程序员的幽默时刻:编程界的笑话集锦100

天津汇柏科技有限公司

程序员 软件开发

Plugin Alliance Brainworx bx_limiter True Peak(峰值限制器)

Rose

英伟达力推生命科学,背后分子动力学价值远被低估

新消费日报

第二届全国高校软件测试开发教育峰会在韩山师范学院隆重举办!

测试人

人工智能 软件测试 测试开发 高校

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