集合例题,

  1. package com.hspedu.homework;
    
    import java.util.*;
    
    /**
     * @author 韩顺平
     * @version 1.0
     */
    @SuppressWarnings({"all"})
    public class Homework03 {
        public static void main(String[] args) {
    
            Map m = new HashMap();
            m.put("jack", 650);//int->Integer
            m.put("tom", 1200);//int->Integer
            m.put("smith", 2900);//int->Integer
            System.out.println(m);
    
            m.put("jack", 2600);//替换,更新
            System.out.println(m);
    
            //为所有员工工资加薪100元;
            //keySet
            Set keySet = m.keySet();
            for (Object key : keySet) {
                //更新
                m.put(key, (Integer)m.get(key) + 100);
            }
            System.out.println(m);
    
            System.out.println("=============遍历=============");
            //遍历 EntrySet
            Set entrySet = m.entrySet();
            //迭代器
            Iterator iterator = entrySet.iterator();
            while (iterator.hasNext()) {
                Map.Entry entry =  (Map.Entry)iterator.next();
                System.out.println(entry.getKey() + "-" + entry.getValue());
    
            }
    
            System.out.println("====遍历所有的工资====");
            Collection values = m.values();
            for (Object value : values) {
                System.out.println("工资=" + value);
            }
    
        }
    }
    /**
     * 按要求完成下列任务
     * 1)使用HashMap类实例化一个Map类型的对象m,键(String)和值(int)分别用于存储员工的姓名和工资,
     * 存入数据如下:	jack—650元;tom—1200元;smith——2900元;
     * 2)将jack的工资更改为2600元
     * 3)为所有员工工资加薪100元;
     * 4)遍历集合中所有的员工
     * 5)遍历集合中所有的工资
     */
    

    EntrySet

  2.  5题会抛出类型转换异常,add方法,因为TreeSet()构造器没有传入Comparable接口的匿名内部类。就执行的是TreeMap里的方法,把key转成Comparable类型。如果key实现了Comparable接口才可以转成功,这里Person类显然没有实现Comparable接口。

  3.  p1.name="CC";被更改了name,然后remove方法根据id和name属性返回的哈希值就有可能变化,不是在原先的p1位置了。有可能把其他null位置删除了。然后在添加1001,"CC"根据这两个值返回的哈希值【就是要存储的下标】又不一样了可以加入。1001,"AA"就和p1一样了哈希值一样了,但内容已经不相同了,所以会挂到p1后面。

你可能感兴趣的:(java,开发语言)