易截截图软件、单文件、免安装、纯绿色、仅160KB

java集合框架


 
 
Java为数据结构的映射定义了一个接口java.util.Map.它有四个实现类,分别是HashMap, Hashtable,LinkedHashMap和TreeMap主要用于存储键值对,根据键得到值,因此不允许键重复,但允许值重复。
HashMap是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序完全是随机的。HashMap最多只允许一条记录的键为Null,允许多条记录的值为Null,当get()方法返回null值时,既可以表示HashMap中没有该键,也可以表示该键所对应的值为null,因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用Collections的synchronizdeMap方法使HashMap具有同步能力,或者使用ConcurrentHashMap.另外HashMap是基于哈希表实现的,HashMap的键得重写hashCode()和equals()方法。
 
TreeMap
是实现SortedMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序,也可以指定排序的比较器,当用Iterator遍历TreeMap时,得到的记录是排过序的。所以TreeMap的键得实现Comparabl,没有实现的话就要给TreeMap指定一个Comparator
Hashtable中的方法是同步的,也即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了;而Hashtable不允许键值为空。
内部哈希:哈希映射技术
几乎所有通用Map都使用哈希映射,这是一种将元素映射到数组的非常简单的机制,您应了解哈希映射的工作原理,以便充分利用Map.
哈希映射结构由一个存储元素的内部数组组成,由于内部采用数组存储,因此必然存在一个用于确定任意键访问数组的索引机制,实际上该机制需要提供一个小于数组大小的整数索引值,该机制称作哈希函数。在Java基于哈希的Map中,哈希函数将对象转换为一个适合内部数组的整数,您别不必为寻找一个易于使用的哈希函数而大伤脑筋:每个对象都包含一个返回整数值的hashCode()方法,要将该值映射到数组,只需将其转换为一个正值,然后将该值除以数组大小后取余数即可,以下是一个简单的,适用于任何对象的Java哈希函数
int hashvalue = Maths.abs(key.hashCode()) % table.length;
(%二进制运算符(称作模)将左侧的值处以右侧的值,然后返回整数形式的余数。)
实际上,在1.4版发布之前,这就是各种基于哈希


相关文档:

PowerDesigner OOM 生成java类(一) 转 javapark

最近在使用PowerDesigner设计数据库,设计完cdm 和 pdm时,了解到可以用oom自动生成Java类.
    但是生成的Java类的默认格式和自己的要求有偏差,最终得到了些解决办法.这里记录了下.(我使用的版本是PowerDesigner12)
    在oom模型中language>edit current object language. 类的主格式是 ......

Java注释规范[转载]

注释的原则
1、 注释形式统一
在整个应用程序中,使用具有一致的标点和结构的样式来构造注释。如果在其他项目组发现他们的注释规范与这份文档不同,按照他们的规范写代码,不要试图在既成的规范系统中引入新的规范。
2、 注释的简洁
内容要简单、明了、含义准确,防止注释的多义性,错误的注释不但无益反而有 ......

Java学习笔记(1) 对象初始化顺序

在Java中,当一个对象被创建时,成员变量的初始化及构造方法的调用遵循以下顺序:
1. 将分配给对象的存储空间初始化成二进制的零。
2. 调用所有基类的构造方法。这个步骤会不断地反复递归下去,首先是构造这种层次结构的根,然后是下一层子类,等等,直到最底层的子类。
3. 按照声明的顺序调用成员的初始化方法。
4. 调 ......

Java学习资料网址


    今天在http://www.51itdh.com/这个网站上找到有好多Java学习的资料,所以收集下来给大家分享下。这个网站挺多编程这方面资源的。
1.Java学习网站:
Java中文世界论坛        http://www.chinajavaworld.com/index.jspa
Java世纪网            &nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号