Map集合的遍历(方式1)
-
步骤分析
- 获取所有键的集合。
- 用keySet()方法实现遍历键的集合,获取到每一个键。
- 用增强for实现根据键去找值。用get(Object key)方法实现
Map集合的遍历(方式2)
-
步骤分析
- Set<Map.Entry<K,V>> entrySet():获取所有键值对对象的集合
- 获取所有键值对对象的集合
- 遍历键值对对象的集合,得到每一个键值对对象
- 用增强for实现,得到每一个Map.Entry
- 根据键值对对象获取键和值
- 用getKey()得到键
- 用getValue()得到值
-
三种双列集合,以后如何选择?
HashMap LinkedHashmap TreeMap
默认:HashMap(效率最高)如果要保证存取有序:LinkedHashmap如果要进行排序:TreeMap
- boolean类型的变量控制,一般只有AB两面,因为boolean只有两个值;
- int类型的变量控制,一般至少有三面,因为int可以取多个值。
ex:comparable返回值有-1,0,1三种情况,用int控制
key+value拼接
红黑树理解
- 规则:左根右,根叶黑,不红红,黑路同
- 调整:新插入的节点一般默认调整为红色(看叔叔脸色)
1.叔叔为red
叔叔,父亲,爷爷全部染相反色,爷爷变成新节点来进行判断(如果爷爷变成红色节点并且连接红色节点则需再次调整),如果爷爷节点为根节点后面将其直接染成黑色即可。
2.叔叔为black
根据节点相对位置进行旋转,有
(LL,RR)->父换爷加染色;旋转调整一般一次
(LR,RL)->儿换爷加染色。旋转调整一般两次
可变参数
Collections基础应用
1.等分概率抽取集合元素
2.带概率抽取集合元素
使用双集合
3.不重复抽取
规避变长数组带来的统计