1-6练习

1.使用Map接口的实现类完成员工工资(姓名–工资)的摸拟:

(1)添加几条信息

(2)列出所有的员工姓名

(3列出所有员工姓名及其工资

(4)删除名叫“Tom”的员工信息

(5)输出Jack的工资,并将其工资加1000元(通过取值实现)

  1. 将所有工资低于1000元的员工的工资上涨20%(通过取值实现)


public class Task1 {
    public static void main(String[] args) {
        Map<String, Worker> map = new HashMap<String, Worker>();
        Worker worker1 = new Worker("name1", 800);
        Worker worker2 = new Worker("name2", 2500);
        Worker worker3 = new Worker("name3", 700);
        Worker tom = new Worker("Tom", 3000);
        Worker jack = new Worker("Jack", 2100);
        map.put("name1", worker1);
        map.put("name2", worker2);
        map.put("name3", worker3);
        map.put("Tom", tom);
        map.put("Jack", jack);
        Set<String> names = map.keySet();
        Iterator<String> iterator = names.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        iterator = names.iterator();
        while (iterator.hasNext()) {
            String name = iterator.next();
            System.out.println(name + "->" + map.get(name).salary);
        }
        map.remove("Tom");
        System.out.println("Jack的工资为:" + map.get("Jack").salary);
        map.get("Jack").setSalary(map.get("Jack").getSalary() + 1000);
        Collection<Worker> values = map.values();
        Iterator<Worker> iterator1 = values.iterator();
        while(iterator1.hasNext()){
            Worker w= iterator1.next();
            if(w.getSalary()<1000)
                w.setSalary(w.getSalary()*1.2);
        }
        System.out.println(map);
    }
}
class Worker {
    String name;
    double salary;
    public Worker(String name, int salary) {
        this.name = name;
        this.salary = salary;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Worker{" +
                "name='" + name + '\'' +
                ", salary=" + salary +
                '}';
    }
}

  1. 分析以下需求,并用代码实现:

(1)定义一个学生类Student,包含属性:姓名(String name)、年龄(int age)

(2)定义Map集合,用Student对象作为key,用字符串(此表示表示学生的住址)作为value

(3)利用三种方式遍历Map集合中的内容


public class Task2 {
    public static void main(String[] args) {
        Map<Student, String> map = new HashMap<>();
        Student stu1 = new Student("name1", 20);
        Student stu2 = new Student("name2", 20);
        Student stu3 = new Student("name3", 20);
        map.put(stu1, "address1");
        map.put(stu2, "address2");
        map.put(stu3, "address3");
        //方式一
        Set<Student> keys = map.keySet();
        Iterator<Student> iterator1 = keys.iterator();
        while (iterator1.hasNext()) {
            Student s = iterator1.next();
            System.out.println(s + map.get(s));
        }
        //方式2
        Collection<String> values = map.values();
        Iterator<String> iterator2 = values.iterator();
        while (iterator2.hasNext()) {
            String address = iterator2.next();
            System.out.println(address);
        }
        //方式3
        Set<Map.Entry<Student, String>> entries = map.entrySet();
        Iterator<Map.Entry<Student, String>> iterator3 = entries.iterator();
        while(iterator3.hasNext()){
            Map.Entry<Student,String> m=iterator3.next();
            System.out.println(m);
        }
    }
}

class Student {
    String name;
    int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
  1. 统计一个字符串中字母字符,数字字符出现的次数。(不考虑其他字符)

public class Task3 {
    public static void main(String[] args) {
//        3.统计一个字符串中字母字符,数字字符出现的次数。(不考虑其他字符)
        Scanner scan=new Scanner(System.in);
        String str=scan.next();
        Map<String,Integer> map=new HashMap<>();
        for(int i=0;i<str.length();i++){
           char c=str.charAt(i);
            if(Character.isAlphabetic(c) || Character.isDigit(c)){
                String s=c+"";
                if(!map.containsKey(s)){
                    map.put(s,1);
                }
                else {
                    map.replace(s,map.get(s)+1);
                }
            }
        }
        System.out.println(map);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值