Map(双列集合)
出现的原因:现实生活中有些数据成对存在。
特点:键不可重复,值可以重复。
----------|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()获取最大最小值,同样的,当不具备自然顺序的时候需要传入比较器。
Map(双列集合)的更多相关文章
- (10)集合之双列集合Map,HashMap,TreeMap
Map中的元素是两个对象,一个对象作为键,一个对象作为值.键不可以重复,但是值可以重复. 看顶层共性方法找子类特有对象. Map与Collection在集合框架中属并列存在 Map存储的是键值对 Ma ...
- 双列集合Map
1.双列集合Map,就是存储key-value的键值对. 2.hashMap中键必须唯一,值可以不唯一. 3.主要方法:put添加数据 getKey---通过key获取数据 keySet- ...
- Map集合——双列集合
双列集合<k, v> Map: Map 和 HashMap是无序的: LinkedHashMap是有序的: HashMap & LinkedHashMap: put方法: 其中,可 ...
- 双列集合Map的嵌套遍历
双列集合Map的嵌套使用,例如HashMap中还有一个HashMap,这样的集合遍历起来稍微有点儿复杂.例如一个集合:HashMap<Integer,HashMap<String,Inte ...
- Map集合(双列集合)
Map集合(双列集合)Map集合是键值对集合. 它的元素是由两个值组成的,元素的格式是:key=value. Map集合形式:{key1=value1 , key2=value2 , key3=val ...
- Java之Map接口(双列集合)
Map集合概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...
- 56. Map(双列集合)
在生活中有些数据是以映射关系存在的,也就是成对出现的,比如:老公 老婆(key-->value) 双列集合:-------------------| Map 如果是实现了Map接口的集合 ...
- Day 9:双列集合Map及实现该接口的类的常用方法
为什么要学双列集合? 因为单列集合无法处理映射关系,会有成对出现的数据 Map接口 如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复 Map接 ...
- Java中的集合(七)双列集合顶层接口------Map接口架构
Java中的集合(七)双列集合顶层接口------Map接口 一.Map接口的简介 通过List接口,我们知道List接口下的集合是单列集合,数据存储是单列的结构.Map接口下是一个键值对(key-v ...
随机推荐
- Log4j等级测试
一.结论: 1./**debug.info.warn.error.fatal由低到高*/ 2.注意:log.error(message,e)不会打印异常堆栈信息. 二.测试过程 1.代码 packag ...
- GroupId和ArtifactId
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency> ...
- 配置Git Extension免密码发布代码到CSDN
配置Git Extension免密码发布代码到CSDN [本文默认大家安装了Git以及Git Extension] 今天花费了许多的时间处理这个问题,希望能给大家节约时间.闲话少说:使用ssh验证来p ...
- vc 取windows系统信息 版本 cpu信息 内存信息 ie版本信息 office版本
头文件: /*! Copyright (C) *---------------------------------------------------------------------------- ...
- 如何在低api中使用View的属性设置方法如setAlpha等
ViewPagerTransforms 是一个自定义了各种翻转效果的开源库,其中的各种PageTransformer使用了view的很多属性设置方法如DepthPageTransformer中:? p ...
- windows下忘记mysql密码怎么办
长时间不用mysql,密码忘记了怎么办,按照下面的步骤可以重新设置密码: 1.先把mysql服务停了,右键计算机-->选择管理-->选择服务和应用程序-->选择服务-->找到m ...
- 在Visual Studio 2013上安装SQLite designer components
最近搞一个WinCE项目,要用到SQLite.看人家都能直接在Visual Studio上连接SQLite.我也按照他们的方法安装了最新的Setups for 32-bit Windows (.NET ...
- 这些优化 Drupal 网站速度的超简单办法,你忽略了多少?
“怎么样能让我的 Drupal 网站更快一些?”是我们最常遇到的一个问题.站点速度确实非常重要,因为它会影响你的 SEO排名效果.访客是否停留以及你自己管理网站所需要的时间. 今天我们就来看看那些通过 ...
- noip2009 潜伏者
P1071 潜伏者 827通过 2.2K提交 题目提供者洛谷OnlineJudge 标签字符串模拟2009NOIp提高组 难度普及/提高- 提交该题 讨论 题解 记录 题目描述 R 国和 S 国正 ...
- 华为OJ平台——字符串通配符
题目描述: 在计算机中,通配符一种特殊语法,广泛应用于文件搜索.数据库.正则表达式等领域.现要求各位实现字符串通配符的算法.要求:实现如下2个通配符: *:匹配0个或以上的字符(字符由英文字母和数字0 ...