Map练习

创建Map集合,存储如下数据:
键        值
长沙      湘A
株州      湘B
湘潭      湘C
衡阳      湘D
请编程完成如下功能:
1)提示输入一个城市,输出该城市对应的车牌号,如:
   请输入一个城市:湘潭
   车牌号为:湘C
2)添加城市和车牌号,如:
   请输入一个城市:邵阳
   请输入车牌号:湘D
   添加成功
3)循环遍历,输出集合内所有的键和值,如下格式:
   长沙 -> 湘A
   邵阳 -> 湘D

import java.util.*;

public class timu1 {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<String, String>();
        map.put("长沙", "湘A");
        map.put("株洲", "湘B");
        map.put("湘潭", "湘C");
        map.put("衡阳", "湘D");

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个城市:");
        String name = scanner.next();
        boolean jg = map.containsKey(name);
        if (jg) {
            System.out.println("车牌号为: " + map.get(name));
        } else {
            System.out.println("不存在");
        }

        System.out.println("请输入一个城市:");
        String cs = scanner.next();
        System.out.println("请输入车牌");
        String cp = scanner.next();
        map.put("邵阳","湘D");
        if (cs.contentEquals("邵阳") && cp.contentEquals("湘D")) {
            System.out.println("添加成功");
        }else {
            System.out.println("添加失败");
        }
        System.out.println("==============遍历数组输出集合中所有元素=============");
            for (String key:
                    map.keySet()) {
                System.out.println(key+" "+ map.get(key));
            }
        }
    }

 

使用泛型存储数据,key为String,value为学生对象(sname,age)
创建3个对象存储
编号   值
100   对象1
200   对象2
300   对象3

查找集合是否存在编号,存在就输出对象信息,输出信息后再删除

package timuer;

import java.util.*;
import java.util.Map;

public class tier {
    public static void main(String[] args) {
        Map<String,student> map = new HashMap<>();
        student s1 = new student("猪八戒",100);
        student s2 = new student("孙悟空",101);
        student s3 = new student("沙悟净",102);

        map.put("100",s1);
        map.put("200",s2);
        map.put("300",s3);

        boolean jg = map.containsKey("100");
        if (jg){
            student xingxi = map.put("100",s1);
            System.out.println(xingxi.getName()+" "+xingxi.getAge());
        }

        map.remove("100",s1);

        }
    }

 Student类

package timuer;

public class student {
    private String name ;
    private int 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;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

 

 

### 关于 Map 数据结构和函数的编程练习 Map 是一种常见的数据结构,在许多编程语言中有不同的实现形式,比如 Python 中的字典 (dictionary),C++ 的 `std::map` 和 Java 的 `HashMap`。以下是几个涉及 Map 数据结构或函数的经典编程练习题: #### 1. 字符串字符频率统计 编写一个程序来计算给定字符串中每个字符出现的次数并存储在一个映射表中。 ```python def char_frequency(s): freq_map = {} for c in s: if c not in freq_map: freq_map[c] = 0 freq_map[c] += 1 return freq_map result = char_frequency("hello world") print(result) # 输出 {'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1} ``` 此代码片段展示了如何利用 map 来记录字符及其对应的频次[^1]。 #### 2. 单词计数器 设计一段代码用于读取文本文件中的单词,并创建一个 map 表示每个唯一单词以及它在整个文档中出现的次数。 ```python from collections import defaultdict def word_count(file_path): counts = defaultdict(int) with open(file_path, 'r') as file: for line in file: words = line.split() for word in words: counts[word.lower()] += 1 return dict(counts) counts_result = word_count('example.txt') print(counts_result) ``` 上述例子说明了通过遍历文件每一行并将每行拆分为单独词语的方式构建了一个基于默认字典的对象,默认字典会自动初始化不存在键值为零的情况[^2]。 #### 3. 反转键值对 假设有一个已存在的关联数组或者哈希表,请写一个方法用来交换所有的 key-value 对的位置形成新的反转后的集合。 ```python def invert_dict(original_dict): inverted = {value: key for key, value in original_dict.items()} return inverted original = {"apple": "fruit", "carrot": "vegetable"} inverted = invert_dict(original) print(inverted) # 输出 {'fruit': 'apple', 'vegetable': 'carrot'} ``` 这里提供了一种简洁的方法去完成这个任务——借助推导式语法快速生成一个新的倒置版本的地图对象[^3]。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值