出现的原因:现实生活中有些数据成对存在。

特点:键不可重复,值可以重复。

----------|Map                数据都是以键值对的形式存在,键唯一,值可重复。

-------------|HashMap      基于哈希表实现的。

存储原理:

往hashMap添加元素的时候,首先会调用键的hashCode()方法,得到该元素的哈希值,根据哈希值算出在哈希表中的存储位置。

情况1:如果算出的位置空,直接添加。

情况2:如果算出的位置不空,则调用equals()方法,返回true则不存储,返回false则存储。

-------------|TreeMap      基于红黑树(二叉树)实现的,会对元素的键排序存储。

注意事项:

1、添加元素的时候,如果键具备自然书序,就按键的自然顺序排序存储。

2、添加元素的时候,如果键不具备自然顺序,则元素所属的类必须实现comparable接口,把规则定义在CompareTo()方法上。

3、添加元素的时候,如果键不具备自然顺序,而且元素所属的类没有实现comparable接口,那么必须在创建TreeMap对象的时候传入比较器。

-------------|HashTable    底层也依赖于哈希表实现,但hashTable是线程安全的,操作效率低。

方法:

添加的:

put();putAll()

判断的:

containsKey();containsValue();isEmpty();

删除的:

clear();remove(object key);

迭代:

keySet()

@Override//利用String 中的字符串比较函数,比较日期

public int compareTo(Book o){

return this.date.compareTo(o.date);

}

笔试题:Collection与Collections的区别?

1、Collection是单例集合的跟接口;Collections是操作集合对象的一个工具类。

常见的方法:

1、sort()排序的,当不具备自然顺序的时候需要传入比较器。

2、max()、min()获取最大最小值,同样的,当不具备自然顺序的时候需要传入比较器。

最新文章

  1. 表格中每行的checkbox只能选中其中一个jquery实现
  2. ocanvas 画板
  3. Atitit.实现继承的原理and方法java javascript .net c# php ...
  4. 基于jQuery的TreeGrid组件详解
  5. phpcmsV9中表单向导在js调用里日期控件在IE下报Calendar未定义的解决办法
  6. GCC扩展(转--对看kernel代码有帮助
  7. 【POJ】2318 TOYS ——计算几何+二分
  8. Archive for required library: ‘WebContent/WEB-INF/lib/xxx.jar cannot&n
  9. NOIP2001T4car的旅行计划
  10. macaca web(4)
  11. macOS Sierra WiFi connecting problem
  12. MQ(转)
  13. python 数据类型一 (重点是字符串的各种操作)
  14. 【转载整理】Hibernater的锁机制
  15. iOS:UITableViewCell自定义单元格
  16. C/C++预处理宏的总结
  17. 进入保护模式(二)——《x86汇编语言:从实模式到保护模式》读书笔记14
  18. spring3: 内置Resource实现
  19. DISCUZ 各数据库表作用
  20. angularjs实现导航菜单切换高亮

热门文章

  1. springMVC spring hibernate pom.xml备份
  2. JavaScriptResult用法
  3. 01-事件处理简介/UIView拖拽
  4. http是什么?
  5. 初探接口测试框架--python系列2
  6. 吉布斯现象( Gibbs)
  7. 【练习】如何显示本地主机上的MySQL客户机版本
  8. 【转】Java的接口和抽象类的区别
  9. ASP.NET MVC 开源项目学习之ProDinner (一)
  10. ZoneMinder配置与使用