集合练习题02

Exercise03

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
​
public class Exercise03 {
    public static void main(String[] args) {
        /*
        1.使用HashMap类实例化一个Map类型的对象m,键(String)和值(int)分别用于存储员工的姓名和工资,存入数据如下:
        Jack - 650 ; Tom - 1200 ; Rose - 2900;
        2.将Jack的工资更改为2600;
        3.为所有员工加工资100;
        4.遍历集合中所有的员工;
        5.遍历集合中所有的工资。
         */
​
        Map m = new HashMap();
        //存入数据:Jack - 650 ; Tom - 1200 ; Rose - 2900;
        m.put("Jack",650);
        m.put("Tom",1200);
        m.put("Rose",2900);
        System.out.println(m);
​
        //2.将Jack的工资更改为2600;
        m.put("Jack",2600);
        System.out.println(m);
​
        //3.为所有员工加工资100;
        Set set = m.keySet();
        for (Object o : set) {
            m.put(o,(Integer)m.get(o)+100);
        }
        System.out.println(m);
​
        //4.遍历集合中所有的员工;
        Set set1 = m.entrySet();
        for (Object o : set1) {
            Map.Entry entry = (Map.Entry)o;
            System.out.println(entry.getKey() + " - " + entry.getValue());
        }
​
        //5.遍历集合中所有的工资。
        Collection values = m.values();
        for (Object o : values) {
            System.out.println(o);
        }
​
    }
}
/*
运行结果:
{Tom=1200, Rose=2900, Jack=650}
{Tom=1200, Rose=2900, Jack=2600}
{Tom=1300, Rose=3000, Jack=2700}
Tom - 1300
Rose - 3000
Jack - 2700
1300
3000
2700
 */

Exercise04

分析HashSet和TreeSet愤怒别如何实现去重的:

(1)HashSet的去重机制:hashCode() + equals(),底层先通过存入对象,进行运算得到一个hash值,通过hash值得到对应的索引,如果发现table索引所在的位置,没有数据,就直接加入,如果有数据,就进行equals比较[遍历比较],如果比较后,不相同,就加入,否则就不加入

(2)TreeSet的去重机制:如果你传入了一个Comparator匿名对象,就使用实现的compare去重,如果方法返回0,就认为是相同的元素/数据,就不添加,如果你没有传入一个Comparator匿名对象,则以你添加的对象实现的Compareable接口的compareTo去重。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值