HashMap的创建和值添加

本文介绍了一个具体的Java HashMap使用案例,包括HashMap的创建、值的添加以及遍历过程,并展示了如何将HashMap中的键值对拼接成URL参数字符串并进行URL编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//HashMap的创建和值添加
     HashMap<String, String> hashMap = new HashMap<String, String>();
        hashMap.put("appName", "IPAD APP");
        hashMap.put("appVer", "2.0");
        hashMap.put("cmd","CV_Services.GetIndustryNews('consumer discretionary','en',0,10,'','XSHG,XSHE')");
        hashMap.put("alg", "alg");
        hashMap.put("appID", "device02154698");

     //泛型HashMap的遍历
        StringBuffer urlBuffer = new StringBuffer();
        Iterator<Entry<String, String>> iterator = hashMap.entrySet().iterator();
        while (iterator.hasNext()) {
            Entry<String, String> entry = iterator.next();
            urlBuffer.append(entry.getKey());
            urlBuffer.append("&");
            urlBuffer.append(entry.getValue());
            urlBuffer.append("&;");
        }
        
        String url="";
        try {
            url=URLEncoder.encode(urlBuffer.toString(), "UTF-8");  //URL编码
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        
        System.out.println(url);
<think>我们被要求提供JavaHashMap添加元素循环遍历的示例代码。根据引用的内容,我们可以综合参考引用[1]引用[2]以及引用[4]中的代码示例。注意:用户要求的是添加元素遍历,所以我们将展示如何添加元素,以及两种常见的遍历方式(使用keySetentrySet)。根据引用[2]中的示例代码,我们可以学习到:1.创建HashMap对象2.使用put方法添加元素3.使用keySet遍历(并获取)4.使用entrySet遍历(同时获取键)另外,引用[1]引用[4]展示了使用迭代器遍历并删除元素,但用户目前只需要遍历,所以我们可以展示普通的遍历方式,但也可以提一下使用迭代器遍历(因为引用中多次提到)。由于引用[3]提到HashSet的底层是HashMap,但用户问题与HashSet无关,所以可以不考虑。我们将编写一个示例程序,包含以下步骤:1.创建HashMap添加几个元素2.使用keySet遍历3.使用entrySet遍历4.使用forEach方法(Java8之后)也是一种遍历方式,但引用中没有提到,我们可以选择是否展示。由于用户没有要求最新特性,我们可以根据引用中的方式展示。但注意引用[4]中有一个使用entrySet的增强for循环遍历示例。综合以上,我们给出如下示例代码:</think> 以下是Java中HashMap添加元素及遍历的示例代码,综合参考了您提供的引用资料: ### HashMap添加元素及遍历示例 ```java import java.util.HashMap; import java.util.Map; import java.util.Iterator; import java.util.Map.Entry; public class HashMapExample { public static void main(String[] args) { // 1. 创建HashMap添加元素 Map<String, Integer> map = new HashMap<>(); map.put("Alice", 25); // 添加对 map.put("Bob", 30); map.put("Charlie", 35); map.put("David", 28); // 继续添加元素 System.out.println("初始化后的HashMap: " + map); // 2. 遍历方式一:使用entrySet(推荐) System.out.println("\n遍历方式一:EntrySet"); for (Map.Entry<String, Integer> entry : map.entrySet()) { System.out.println( "Key: " + entry.getKey() + " | Value: " + entry.getValue() ); } // 3. 遍历方式二:使用keySet System.out.println("\n遍历方式二:KeySet"); for (String key : map.keySet()) { System.out.println( "Key: " + key + " | Value: " + map.get(key) ); } // 4. 遍历方式三:使用迭代器(支持遍历时删除) System.out.println("\n遍历方式三:迭代器(删除年龄=30的元素)"); Iterator<Entry<String, Integer>> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Entry<String, Integer> entry = iterator.next(); if (entry.getValue() == 30) { iterator.remove(); // 安全删除元素 } System.out.println( "Key: " + entry.getKey() + " | Value: " + entry.getValue() ); } System.out.println("\n最终HashMap: " + map); } } ``` ### 代码说明: 1. **添加元素** 使用`put()`方法添加对,如`map.put("Alice", 25)` 2. **遍历方式对比**: - **EntrySet遍历**(最优) 直接获取键对,无需二次查询 `O(1)`访问[^2][^4] - **KeySet遍历** 需通过key获取value,有二次查询开销[^2] - **迭代器遍历** 支持安全删除元素(唯一避免`ConcurrentModificationException`的方式)[^1][^4] 3. **输出示例**: ```text 初始化后的HashMap: {Charlie=35, Bob=30, Alice=25, David=28} 遍历方式一:EntrySet Key: Charlie | Value: 35 Key: Bob | Value: 30 Key: Alice | Value: 25 Key: David | Value: 28 遍历方式二:KeySet Key: Charlie | Value: 35 Key: Bob | Value: 30 Key: Alice | Value: 25 Key: David | Value: 28 遍历方式三:迭代器(删除年龄=30的元素) Key: Charlie | Value: 35 Key: Bob | Value: 30 ← 被删除 Key: Alice | Value: 25 Key: David | Value: 28 最终HashMap: {Charlie=35, Alice=25, David=28} ``` ### 核心注意事项: 1. 遍历时删除元素必须使用迭代器的`remove()`方法[^1] 2. `HashMap`不保证遍历顺序(如需有序使用`LinkedHashMap`)[^3] 3. 避免在多线程环境下使用(需改用`ConcurrentHashMap`)[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值