循环MAP

package hashmap;

import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
import java.util.ArrayList;

/**
* TODO 对HashMap的迭代
* @author fxfeng
* @create 2005-12-20
*/
public class HashMapTest {

private static Map temp = new HashMap();

public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=0; i<10; i++){
String str = "string" + i;
temp.put(new Integer(i), str);
}
if(temp.containsKey(new Integer(5))){
System.out.println("Contains!");
}else{
System.out.println("No contains!");
}
System.out.println("/");
for(Iterator it = temp.entrySet().iterator(); it.hasNext(); ){
Map.Entry e = (Map.Entry)it.next();
System.out.println("key: " + e.getKey());
System.out.println("value: " + e.getValue());
}
System.out.println("//");
}
}
### 如何在编程中遍历或操作 Map 数据结构 #### C 语言中的 Map 遍历方法 为了在 C 语言中实现并遍历一个基于 Map 的数据结构,可以采用链表或者哈希表作为底层存储机制。对于每一个键值对,在添加到 Map 后可以通过特定的函数来进行访问和遍历。具体来说,当实现了 `add` 和 `find` 函数用于向 Map 添加新条目以及检索现有条目的时候,还需要有一个专门用来遍历整个 Map 的接口[^1]。 下面是一个简单的例子展示如何定义这样的功能: ```c typedef struct { char* key; int value; } Entry; // 定义Map类型为指向Entry指针数组 typedef struct { size_t capacity; Entry** entries; } Map; void traverse_map(Map *m) { for (size_t i = 0; i < m->capacity; ++i) { if (m->entries[i]) { printf("Key: %s Value:%d\n", m->entries[i]->key, m->entries[i]->value); } } } ``` 这段代码展示了基本框架下的遍历逻辑;实际应用时可能需要考虑更多细节如处理冲突、动态调整大小等特性。 #### Java 中的不同遍历方式 Java 提供了多种优雅的方式来遍历 Map 类型的数据结构。除了传统的通过 KeySet 或者 entrySet 进行迭代之外,还可以利用增强 For 循环、Stream API 及 Lambda 表达式简化语法[^3]。 这里给出一段使用 Stream 流的方式遍历 Map 并打印每一对键值的例子: ```java @Test public void testMapTraversal() { Map<String, Integer> phonePrices = new HashMap<>(); phonePrices.put("小米手机", 1000); phonePrices.put("苹果手机", 3000); phonePrices.put("荣耀手机", 2000); // 使用stream()方法将Map转换为流,然后进行遍历操作 phonePrices.entrySet().stream() .forEach(entry -> System.out.println(entry.getKey() + "--" + entry.getValue())); } ``` 此段程序会依次输出各个品牌及其对应的价格信息。 #### Python 中的操作与遍历 Python 内置字典(dict)即是一种映射(map),可以直接用for循环轻松完成遍历工作。如果想要获取所有的 keys 或 values,则分别调用 dict.keys() 或 dict.values() 方法即可获得相应的视图对象,这些都可以被直接迭代。 ```python phone_prices = {"小米手机": 1000, "苹果手机": 3000, "荣耀手机": 2000} # 直接遍历keys,默认情况下就是如此 for brand in phone_prices: print(f"{brand}: {phone_prices[brand]}") # 显式指定只遍历values for price in phone_prices.values(): print(price) # 获取items视图以便同时取得key-value对 for brand, price in phone_prices.items(): print(f"{brand}:{price}") ``` 上述三种不同语言环境下针对 Map/Dict 结构进行了有效的遍历演示[^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值