关于Map的 练习题

package zuoye;

import javax.xml.crypto.dsig.keyinfo.KeyName;

import java.security.Key;

import java.util.*;

public class lianxi_1_6 {

public static void main(String[] args) {

/**

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

* S 1)添加几条信息

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

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

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

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

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

*/

//1)添加几条信息

Map<String,Double> map=new HashMap<>();

map.put("Tom",1000.0);

map.put("jack",1000.0);

map.put("liuxing", 900.0);

map.put("赵信",500.0);

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

Collection <String> k=map.keySet();

for (String i:k){

System.out.println(i);

}

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

System.out.println(map);

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

map.remove("Tom");

System.out.println(map);

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

Set<Map.Entry<String,Double>>entries=map.entrySet();

for (Map.Entry<String,Double>entry:entries){

String key=entry.getKey();

double value=entry.getValue();

if (key.startsWith("jack")){

map.put(key,value+1000);

}

}

System.out.println(map);

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

Set<Map.Entry<String,Double>>entries1=map.entrySet();

for (Map.Entry<String, Double>entry:entries1){

String key=entry.getKey();

double value=entry.getValue();

if (value<1000){

map.put(key,value*0.2+value);

}

}

System.out.println(map);

/**

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

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

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

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

*/

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

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

Map <Student,String> map1=new HashMap<>();

map1.put(new Student("张三",23),"泉舜上城");

map1.put(new Student("李四",18),"香港城");

map1.put(new Student("王五",17),"漓江公馆");

System.out.println(map1);

System.out.println("---------------------方法一-----------------");

//方法一

Set<Student> students = map1.keySet();

Iterator<Student>iterator=students.iterator();

while (iterator.hasNext()){

Student student=iterator.next();

String vlo=map1.get(student);

System.out.println("key"+student+"value"+vlo);

}

System.out.println("------------------方法二----------------");

Collection <String>collections=map1.values();

for (String c:collections){

System.out.println("value:"+c);

}

System.out.println("-------------------方法三------------------");

Set<Map.Entry<String,Double>>entrySet=map.entrySet();

for (Map.Entry<String,Double> entry:entrySet){

String key=entry.getKey();

Double value=entry.getValue();

System.out.println("key:"+key+"---value:"+value);

}

/**

*3.统计一个字符串中字母字符,数字字符出现的次数。(不考虑其他字符)

*/

Scanner sc=new Scanner(System.in);

System.out.println("请随意输入英文字符:");

String str=sc.next();

System.out.println(str);

//字符 次数

Map<String,Integer>map3=new LinkedHashMap<>();

for (int i = 0; i < str.length(); i++) {

String s=str.charAt(i)+"";

if (map3.containsKey(s)){//存在 获取当前的次数+1

map3.put(s,map3.get(s)+1);

}else {//不存在 直接存入 初始化次数+1

map3.put(s,1);

}

}

System.out.println(map);

Set<String> keySet = map.keySet(); //优化输入方式

for (String key:keySet){

Integer value = map3.get(key);

System.out.print(key+"("+value+")");

}

}

}

class Student{

private String name;

public int age;

@Override

public String toString() {

return "Student{" +

"name='" + name + '\'' +

", age=" + age +

'}';

}

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;

}

}


版权声明:本文为xuchang9818原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。