HPPC的设想和目标

设想

程序员知道自己在做什么,并可能希望直接访问特定集合的类的内部存储(例如,不使用预定义的迭代器)绝大多数情况下程序使用单线程访问。例如,有一个在并发修改的重复验证的小点。使用原始集合的程序在开发期间使用单元测试和回归测试,所以他们在生产系统中的行为不会被严格验证(我们可以假设使用集合类的代码不会违反给出的一组断言)

从上面这些假设建立以下设计思想:

在HPPC中数据类型尽可能简单,对终端代码里的任何优化公开其内部存储。参数验证和状态有效性校验可以使用断言。这意味着约束仅仅能够检查请求是否在运行是发出(java1.4版本以上),当程序被测试和验证时,它运行从约束中检查不会有额外的开销。我们试图避免复杂的接口层次,尽管为了更明确而定义了特定的接口。程序员在设计时应该还是会选择合适的数据结构,并且应该知道自己在做什么。HPPC为大多数普通任务例如,过滤,迭代以及合并提供了工具,但是这些工具通常比实现低层次的对数据存储的直接访问更昂贵(如果需要的话可以使用)。对数据序列化没有特别的支持。这个实现不是线程安全的,并且不会试图提供快速的并发问题检测。

设计与实现

我们希望HPPC类模板可以实现为普通的Java类,以便典型的编程工具可用于开发,测试等。我们希望HPPC类模板可被用作通常的集合类(适用于封装的数值类型或其它对象类型),但同时我们希望特殊的类能够自动转化为一般类型(为了限制内存消耗并且提高效率由于JIT优化)

接口以及与Java集合API的关系

HPPC并不是严格按照Java集合API来制定的,尽管为了更便捷地使用我们的确尽量让HPPC API接近Java集合API。在很大程度上HPPC中缺少一个特别的是“视图”部分(子列表或具有键或值的集合)。特定的类提供了这些视图(例如ObjectObjectHashMap),但是对大部分来说,提供特殊的方法以接收范围和闭合的过滤器。如果表现仍不尽人意,每一个类的内部可用于直接操作。Java集合类和HPPC类之间的基本关系见下表。

相应类型的方法级的API也相似,但差异也是存在的(参考相应类的Java文档)。

下面让我们来看看它的实现方法,HPPC的示例很少,这里引用的是官方示例。

1.新建一个Java项目,记得下载并引入HPPC的jar包以及JUnit库。

2.将示例中的Helpers和HppcExample_001_IteratingOverLists类复制到相应的包下

3.运行单元测试,可以看到由HPPC实现的List类速度的确快了不少,至于其它的,大家也可以一一试验。

开发资源

下载 v0.7.1、JavaDoc APIv0.7.0、JavaDoc API

API概述代码示例FAQ邮件列表

官方网站:https://labs.carrotsearch.com/hppc.html

开源地址:https://github.com/carrotsearch/hppc

hp电脑java图片抖动_HPPC:高效的Java集合库相关推荐

  1. java图片去掉文字_关于java:Java-添加删除PPT文本和图片水印

    在前文中,我介绍过如何给PDF文档增加文本和图片水印.本文将具体解说如何增加.删除PPT文本和图片水印. 此次代码示例所用到的工具是Free Spire.Presentation for Java.F ...

  2. java容器遍历_高效遍历Java容器详解

    通过本文,你可以更深入的学习 Java 语言中 forEach 语法的知识,以及它和 C 语言形式的 for 循环. Steam API 的对比. 简介 Java 程序员经常使用容器,比如 Array ...

  3. java 图片放在哪_在Java Web应用程序中,应该将用户照片存储在哪里?

    小编典典 解决方案前要考虑的事项: 您是否会水平扩展Web应用程序(即,您是否正在运行多个servlet容器实例). 您期望什么样的流量? 图片需要更新的速度(即用户更改了头像后,他们和所有其他用户是 ...

  4. java图片头像代码_用Java和OpenCV生成Github默认头像

    前言 刚刚过完年,把这样那样的事情忙完,就赶紧把博客剩下的主要功能都先做完了,感觉一身轻松. 闲下来了就抽空看看Github上的项目,偶然间发现Github的默认头像很有特色,它并不像其它的网站一样使 ...

  5. java 图片数字水印_java_如何使用JAVA实现数字水印,数字水印有可见不可见之分, - phpStudy...

    如何使用JAVA实现数字水印 数字水印有可见不可见之分,可见的比如课件上印有学校校徽,微博发图片会水印上上传者的信息及微博logo等. 用java实现可见的数字水印,草人主要是用到了java.awt包 ...

  6. java图片等比缩小算法,java 图片的放大与缩小--等距采样算法

    package test; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; ...

  7. java 图片幻灯片,不需要的java脚本图片幻灯片动画覆盖与网站 Headers

    Problem/ Observation 我的图片幻灯片动画框位于固定 Headers 的正下方(这不是问题) . 当我第一次加载页面时,固定 Headers 和图片框之间没有叠加 . 但是,当我单击 ...

  8. java 图片的路径_【JAVA技术】如何展现绝对路径下的图片

    问题描述:通常情况下,我们在jsp页面上要想显示图片,直接用html的标签即可,但是img标签的src属性的值为图片存放的相对地址.如果图片文件没有存放在整个工程中,此时就需要访问图片文件的绝对路径, ...

  9. java 图片 转像素_使用Java改变图片的像素

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 public void resizeImage(String srcImgPath, String distImgPath, int width, int ...

最新文章

  1. hdu-5778 abs(暴力枚举)
  2. Leetcode987 二叉树的垂序遍历
  3. 【整理】BIOS、BootLoader、uboot对比
  4. ITK:无写访问权限下遍历具有邻域的图像区域
  5. SpringCloud微服务注册调用入门-路由网关
  6. 绿色版DNF(地下城勇士)全键盘连发工具,支持DNF双开
  7. Linux命令:常用进程查看命令
  8. Trianglify - 生成五彩缤纷的 SVG 背景图案
  9. 钢铁侠材质制作——2、线条轮廓部分的制作
  10. 手机摄影-参数(快门)
  11. BUUCTF:[SWPU2019]Network
  12. 如何在PDF文档中添加手写签名?
  13. cobalt strike安装
  14. 带你入门VASP的干货网站
  15. 《流畅的Python》第一章学习笔记
  16. 抓包工具:教你搞懂websocket如何来分析
  17. Mathpix:非常好用的公式生成器,可以图片转公式
  18. JS电影院在线选座简化案例
  19. unity学习笔记-番外(3d模型的动作设计以及导入-2018版)材质的替换以及动作穿模(自己的手穿模到自己的其他部位)
  20. 帕金森病常用评测量表有哪些?收藏常笑医学网权威量表免费用

热门文章

  1. 供应链管理的理论和方法大揭秘
  2. 关爱码农成长:关于写代码二三事
  3. 在ABAP的SQL语句中写Oracle Hints
  4. 2021年恩阳中学高考成绩查询,2021年恩阳中学升学率高不高?
  5. Java泛型类,方法使用,Java继承的歪解
  6. mysql的查询、子查询、连接查询、groud by分组查询
  7. Adaptive Bilateral Filter for Sharpness Enhancement and Noise Removal 阅读理解
  8. css边距和填充示例代码,css 内外边距(示例代码)
  9. ASP.NET WebForm / MVC 源码分析
  10. typescript 类型约束(:普通约束、接口约束、type约束)