1.使用Map接口的实现类完成员工工资(姓名–工资)的摸拟:
1)添加几条信息
2)列出所有的员工姓名
3列出所有员工姓名及其工资
4)删除名叫“Tom”的员工信息
5)输出Jack的工资,并将其工资加1000元(通过取值实现)
6)将所有工资低于1000元的员工的工资上涨20%(通过取值实现)
package Java0109.Work; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class Code1 { public static void main(String[] args) { Map<String ,Double> emps = new HashMap<>(); emps.put("张三",2300.0); emps.put("李四",2670.0); emps.put("王五",300.0); emps.put("赵六",2500.0); Set<String> names = emps.keySet(); for (String name:names) { System.out.print("name" + " "); } System.out.println(); // 列出所有员工和工资 for (String name:names ) { System.out.println(name + "" + emps.get(name)); } emps.remove("张三"); System.out.println(emps); emps.put("李四",emps.get("李四")+1000); System.out.println(emps.get("李四")); Iterator<String> it = names.iterator(); while (it.hasNext()){ String name = it.next(); if (emps.get(name)<1000){ emps.put(name,emps.get(name)*1.2); } } } }
package Java0109.Work;
// 员工类
public class Emp {
private String name;
private double salary ;
public Emp() {
}
public Emp(String name, double 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 "Emp{" +
"name='" + name + '\'' +
", salary=" + salary +
'}';
}
}
2.分析以下需求,并用代码实现:
(1)定义一个学生类Student,包含属性:姓名(String name)、年龄(int age)
(2)定义Map集合,用Student对象作为key,用字符串(此表示表示学生的住址)作为value
(3)利用三种方式遍历Map集合中的内容
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Code2 {
public static void main(String[] args) {
HashMap<Student , String > students = new HashMap<>();
students.put(new Student("秦羽" , 20 ) , "仙魔妖界");
students.put(new Student("姜立" , 19 ) , "神界");
students.put(new Student("小黑" , 18 ) , "妖界");
students.put(new Student("狒狒" , 18 ) , "妖界");
// 方式1 遍历所有的k 获取v
Set<Student> keySet = students.keySet();
for (Student stu : keySet){
System.out.println(stu + " : " + students.get(stu));
}
// 方式2 遍历所有的v
Collection<String> values = students.values();
for (String str : values){
System.out.println(str);
}
// 方式3 遍历所有的键值对
Set<Map.Entry<Student, String>> entrySet = students.entrySet();
for (Map.Entry<Student, String> entry : entrySet){
System.out.println(entry.getKey() + " == " + entry.getValue());
}
}
}
public class Student {
private String name ;
private int age ;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
3.统计一个字符串中字母字符,数字字符出现的次数。(不考虑其他字符)
package Java0109.Work; import java.util.HashMap; import java.util.Map; public class Code3 { public static void main(String[] args) { String str = "fuf23645263dbu2985298jsb"; String zms = "abcdefghijkLmnopqrstuvwxyZABCDEFGHIJKLMNOPQRSTUVWXYZ"; String nums = "0123456789"; Map<String, Integer> map = new HashMap<>(); for (int i = 0; i < str.length(); i++) { char c = str . charAt(i); if (zms. contains(c + "")) { if (map.containsKey("zm")) { map.put("zm", map.get("zm") + 1); } else { map.put("zm", 1); } }else if (nums.contains(c + "")){ if (map. containsKey("num")){ map.put("num",map.get("num") + 1); }else { map.put("num",1); } } } System.out.println("zm="+ map.get("zm")+" num="+map.get("num")); } }