Java核心之set集合和Map集合
set集合(重中之重)
-
基本概念
java.util.Set集合是Collection集合的子集合,与List集合以及Queue集合属于平级
该集合与List集合相比元素没有先后放入次序,并且不允许有重复的元素。
该集合的主要实现类有:HashSet类 和 TreeSet类。
其中HashSet类的底层是采用哈希表进行数据管理的。
其中TreeSet类的底层是采用二叉树进行数据管理的。
-
常用的方法
参考Collection集合中的方法即可;
Iterator
iterator() - 用于获取当前集合中的迭代器对象,可以取出每个元素。 其中Iterator是个接口类型,该接口的常用方法有:
boolean hasNext() - 用于判断集合中是否有可以访问的元素。
E next() - 用于获取集合中一个元素并指向下一个元素。
void remove() - 用于删除迭代器获取到的元素。
思考:
为啥要保证hashCode方法和equals方法的一致性???
解析:
只要equals方法相等则要求hashCode相同,而哈希码值相同时使用同一个哈希算法算出来的索引位置就相同,从而避免同一个元素所在索引位置不同引发的错误。
-
增强版的for循环(for each结构)
语法格式
1
2
3for(元素类型 变量名 : 数组/集合的名称) {
循环体;
}执行流程
不断地从数组/集合中取出一个元素赋值给变量后执行循环体,直到所有元素取完为止.
总结:
遍历Set集合中所有元素的方式有3种:toString方法、for each结构、迭代器
遍历List集合中所有元素的方式有4种:除了上述3种外还有get方法。
1 | import java.util.HashSet; |
Map集合(重点)
-
基本概念
java.util.Map<K,V>集合中存取元素的基本单位是:单对元素,具体类型参数如下:
K - 此映射所维护的键(Key)的类型
V - 映射值(Value)的类型
该集合中不能包含重复的键;每个键最多只能映射到一个值。
该集合的主要实现类有:HashMap类 和 TreeMap类。
-
常用方法
V put(K key,V value)
将Key-Value对存入Map,若集合中已经包含该Key,则替换该Key所对应的Value,返回值为该Key原来所对应的Value,若没有则返回null.V get(Object Key)
返回与参数Key所对应的Value对象,如果不存在则返回null.boolean containsKey(Object Key)
判断集合中是否包含指定的key.boolean containsValue(Object value)
判断集合中是否包含指定的value.
1 | import java.util.HashMap; |