Map接口的标准输出方式

Collection 接口操作的时候每次都会向集合中增加一个元素,但是如果现在增加的元素是一对的话,则就可以使用
Map接口完成功能,Map接口的定义如下:

public interface Map<K,V>

里面需要同时指定两个泛型,主要的原因,Map中的所有保存数据都是按照“key à value”的形式存放

按照最正统的做法,所有的Map 集合的内容都要依靠Iterator 输出,

Map集合本身并不能直接为Iterator 实例化,如果此时非要使用Iterator输出Map集合中内容的话,则要采用如下的步骤:
1、将所有的Map集合通过entrySet()方法变成Set 集合,里面的每一个元素都是Map.Entry的实例;
2、利用Set接口中提供的iterator()方法为Iterator 接口实例化;
3、通过迭代,并且利用Map.Entry接口完成key与value的分离。


实例:

public class ListDemo {

    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("helloworld");
        list.add("abcdefgh");
        Iterator<String> itr = list.iterator();
        while (itr.hasNext()) {
            System.out.print(itr.next() + "、");
        }

        System.out.println("\n===Map输出====");
        Map<String, String> map = new HashMap<String, String>();
        map.put("pp", "ppp");
        map.put("mm", "mmm");
        map.put(null, "NULL");

        Set<Entry<String, String>> set = map.entrySet();
        Iterator<Entry<String, String>> itrs = set.iterator();
        while (itrs.hasNext()) {
            Entry<String, String> me = itrs.next();
            System.out.println(me.getKey() + "-->" + me.getValue());
        }
    }

}


Map是一种键值对(key-value pair)存储结构,在计算机科学中广泛用于快速查找、添加和删除数据项。下面我会详细介绍map的输入输出。 ### 输入 当向`map`插入元素时,你需要提供两个部分的信息: 1. **键 (Key)**:键是用来唯一标识一个条目的。对于每个键来说,在整个映射表里它是独一无二的;如果尝试再次以相同的键存入新的值,则会覆盖旧有的关联。 2. **值 (Value)**:这是你想要与特定键相联系的数据内容。它可以是你想保存到内存中的任何形的对象或基本类型变量等。 例如,在Python语言中可以这样创建并填充字典(一种常见的实现形),作为输入操作的一个实例: ```python # 创建空字典 my_map = {} # 添加元素 - 键为 'apple' 值为 4567890 my_map['apple'] = 4567890 ``` ### 输出 从`map`获取信息通常有两种方: 1. **通过指定键访问对应的值**:如果你已经知道了某个记录所使用的键名,那么可以直接利用它去检索相应的价值。 ```python value = my_map.get('apple') # 或者直接使用索引语法如 my_map['apple'] print(value) # 将打印出 "4567890" ``` 2. **遍历所有键-值对**:有时候我们不仅关心个别项目的结果,而是需要处理全部已存在于此容器内的资料集。此时可以通过迭代器或其他机制逐一取出每一个键及其配对的内容。 ```python for key, value in my_map.items(): print(f"{key}: {value}") ``` 此外需要注意的是,并非所有的编程环境中都支持完全一致的操作接口。比如在某些高级特性方面可能会有所差异,具体取决于所采用的语言平台所提供的标准库函数集合。 #### 示例代码段展示如何在一个简单的程序里运用上述概念完成一次完整的读取过程: ```cpp #include <iostream> #include <unordered_map> int main() { // 定义一个名为 student_scores 的无序映射(map) std::unordered_map<std::string, int> student_scores; // 插入一些成绩数据 student_scores["Alice"] = 95; student_scores.insert({"Bob", 87}); // 查找 Alice 和 Bob 的分数然后显示出来 auto alice_score = student_scores.find("Alice"); if(alice_score != student_scores.end()){ std::cout << "Alice's score is " << alice_score->second << '\n'; } return 0; } ``` 在这个例子中,我们首先建立了包含学生名字和他们对应考试得分之间关系的地图(`student_scores`),接着演示了怎样查询给定姓名的成绩以及将结果呈现于屏幕上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr-稻帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值