1.使用Map接口的实现类完成员工工资(姓名–工资)的摸拟:
(1)添加几条信息
(2)列出所有的员工姓名
(3列出所有员工姓名及其工资
(4)删除名叫“Tom”的员工信息
(5)输出Jack的工资,并将其工资加1000元(通过取值实现)
将所有工资低于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)定义一个学生类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 +
'}';
}
}
统计一个字符串中字母字符,数字字符出现的次数。(不考虑其他字符)
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);
}
}