Map集合,存储键值对的集合
键和值对应
用作键的对象保证唯一性
一个键只能对应一个值
Map接口的子类HashMap
Map<k,v>
K,作用键的数据类型
v,作用值的数据类型
Map接口的方法
V put(k,v)键值对存储到集合
put方法返回值,一般情况向返回null
如果存储了重复的键,原来的值被覆盖put返回之前被覆盖的值
V get(K)根据键获取
键具有唯一性
集合中没有这个键
1.抛出异常
2.引用类型返回null
3.基本类型返回负数
V remove(K) 移除集合中的键值对
比返回被移除前的值
如果没有这个值,返回null
Map集合的遍历
Map集合中的所有的键,存储到Set集合
迭代Set集合,拿到的是Map的所有的键
步骤:
Map中的键,存储到Set集合,Map集合的方法keySet()
迭代器遍历Set集合,取出Set集合中元素
Set的元素是Map集合的键
Map的方法get,找到值
增强for 无法直接遍历Map
对象描述键值对对应关系对象
接口Entry的实现类就是对应关系对象
接口方法:
getKey()
getValue()
集合中键值对的映射关系遍历
Entry接口的实现类,有三个,实现类存储带Set集合
Map接口的方法entrySet()
迭代器
取出Set集合的元素,取出的是键值对的映射关系对象
Map接口的实现类HashMap
自身特点:
底层数据 是哈希表
无序的集合
保证键的唯一性,存储到键的对象,重写hashcode,equals
允许存储null,null键
线程不安全,允许速度快
HashMap集合,存储键值对
键是字符串,值是对象
Map接口实现类HashMap的子类LinkedHashMap
底层哈希表实现,双向链表
有序的集合,元素存储和去除的顺序一致的
线程不安全集合,运行速度快
Map接口的实现类Hashtable
底层哈希表,保证键的唯一性
不允许存储null,null键
线程安全,运行速度慢
被更先进的HashMap取代
但是:
Hashtable有个子类Properties,依然活跃在开发舞台
Map接口的实现类Hashtable子类Properties
集合本质是哈希表,Map集合的代码,全通用
集合的特点:
没有泛型的集合,键值对数据类型固定为String类型
和Io流配合使用
存储键值对的方法:setProperty(String Key,String value) 看做是Map的方法put
根据键获取值的方法:String getProperty(String Key)看做是Map的方法get
集合的键存储Set方法:Set<String> stringPropertyNames()看做是Map的方法KeySet
流中健在键值对到集合:load load(输入流),传递new FileReader
意义:流中读取文件中的键值对,存储到集合中
文件必须携程键值对形式K=V
遇到#,不读取
JDK1.5版本新特性:
方法的可变参数
功能要求:
方法中参数数据类型明确的,但是参数的个数未知的
可变参数的语法:数据类型...变量名(点就三个不能多不能少)
可变参数本质是数组
可以传递任意个数据
什么也不传递,数组的长度=0
方法可变参数注意:
一个方法,只能有一个可变参数
java.util.Collections工具类
静态类:
shuffle 对集合List,元素随机排列
sort 对List集合元素升序排列
binarySearch 二分查找法,折半查找
键和值对应
用作键的对象保证唯一性
一个键只能对应一个值
Map接口的子类HashMap
Map<k,v>
K,作用键的数据类型
v,作用值的数据类型
Map接口的方法
V put(k,v)键值对存储到集合
put方法返回值,一般情况向返回null
如果存储了重复的键,原来的值被覆盖put返回之前被覆盖的值
V get(K)根据键获取
键具有唯一性
集合中没有这个键
1.抛出异常
2.引用类型返回null
3.基本类型返回负数
V remove(K) 移除集合中的键值对
比返回被移除前的值
如果没有这个值,返回null
Map集合的遍历
Map集合中的所有的键,存储到Set集合
迭代Set集合,拿到的是Map的所有的键
步骤:
Map中的键,存储到Set集合,Map集合的方法keySet()
迭代器遍历Set集合,取出Set集合中元素
Set的元素是Map集合的键
Map的方法get,找到值
增强for 无法直接遍历Map
对象描述键值对对应关系对象
接口Entry的实现类就是对应关系对象
接口方法:
getKey()
getValue()
集合中键值对的映射关系遍历
Entry接口的实现类,有三个,实现类存储带Set集合
Map接口的方法entrySet()
迭代器
取出Set集合的元素,取出的是键值对的映射关系对象
Map接口的实现类HashMap
自身特点:
底层数据 是哈希表
无序的集合
保证键的唯一性,存储到键的对象,重写hashcode,equals
允许存储null,null键
线程不安全,允许速度快
HashMap集合,存储键值对
键是字符串,值是对象
Map接口实现类HashMap的子类LinkedHashMap
底层哈希表实现,双向链表
有序的集合,元素存储和去除的顺序一致的
线程不安全集合,运行速度快
Map接口的实现类Hashtable
底层哈希表,保证键的唯一性
不允许存储null,null键
线程安全,运行速度慢
被更先进的HashMap取代
但是:
Hashtable有个子类Properties,依然活跃在开发舞台
Map接口的实现类Hashtable子类Properties
集合本质是哈希表,Map集合的代码,全通用
集合的特点:
没有泛型的集合,键值对数据类型固定为String类型
和Io流配合使用
存储键值对的方法:setProperty(String Key,String value) 看做是Map的方法put
根据键获取值的方法:String getProperty(String Key)看做是Map的方法get
集合的键存储Set方法:Set<String> stringPropertyNames()看做是Map的方法KeySet
流中健在键值对到集合:load load(输入流),传递new FileReader
意义:流中读取文件中的键值对,存储到集合中
文件必须携程键值对形式K=V
遇到#,不读取
JDK1.5版本新特性:
方法的可变参数
功能要求:
方法中参数数据类型明确的,但是参数的个数未知的
可变参数的语法:数据类型...变量名(点就三个不能多不能少)
可变参数本质是数组
可以传递任意个数据
什么也不传递,数组的长度=0
方法可变参数注意:
一个方法,只能有一个可变参数
java.util.Collections工具类
静态类:
shuffle 对集合List,元素随机排列
sort 对List集合元素升序排列
binarySearch 二分查找法,折半查找