双列集合使用

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.不重复抽取

        规避变长数组带来的统计

集合嵌套

不可变集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值