【Java学习】map、hashmap、request.getParameterMap

本文深入解析Java中的HashMap数据结构,涵盖其基本概念、键值对特性、核心方法如put、remove、get及containsKey的使用,并通过示例代码展示其实现细节。

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

从概念上来说,map是一个集合,集合中的每个元素是一个键-值对,所谓键值对,英文是Key-Value,比如学生的身高当做key,身高的具体值就当做value。
map集合中,键和值是一一对应的,一个键只能对于一个值,但是不同的键可以有相同的值,这也好理解:我只有一个身高,但是和我一样身高的可以有很多人。
从语法上来说,map是一个接口,这个接口定义了满足它的概念的一组规则,hashmap则是该接口的一个实现类。

下面是hashmap的几个方法:
1.put(Key,Value);
将key value这个键值对加入集合。
返回值:
如果加入前集合中已经存在以key为键的键值对,则更新这个键值对的值为新加入的value,返回value。
否则,返回null
2.remove(key);
将以key为键的键值对移除。
返回值:
如果存在,返回被删除的value
否则,返回null
3.get(key);
获取key对应的value。
返回值:
如果存在以key为键的键值对,返回value
否则,返回null
4.boolean containsKey(key);
集合中是否包含key,存在返回true,否则返回false

下面是以上四个方法的测试代码,我分别定义四个静态方法分别测试put、 remove、get、containsKey,供和我一样的初学者参考。

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Main {

    public static void main(String[] args) {
        show01();
        show02();
        show03();
        show04();
    }

    private static void show01(){
        Map<String,String> map =new HashMap<>();
        String v1 = map.put("李晨", "范冰冰1");//如果李晨不存在相应的Value,返回1
        System.out.println(v1);
        String v2 = map.put("李晨", "范冰冰2");//如果存在相应的Value,返回被替换的值
        System.out.println(v2);
        map.put("冷锋", "龙小云");
        map.put("杨过", "小龙女");
        map.put("尹志平", "小龙女");
        System.out.println(map);//重写了toString方法
    }

    private  static void show02(){
        Map<String,Integer> map=new HashMap<>();
        map.put("赵丽颖",168);
        map.put("杨颖",165);
        map.put("林志颖",178);
        System.out.println(map);
        Integer v1 = map.remove("林志颖");//存在,返回被删除的值,不存在返回null
        System.out.println(v1);
        System.out.println(map);
        Integer v2 = map.remove("林志玲");//存在,返回被删除的值,不存在返回null
        System.out.println(v2);
        System.out.println(map);
    }

    private static void show03(){
        Map<String,Integer> map=new HashMap<>();
        map.put("赵丽颖",168);
        map.put("杨颖",165);
        map.put("林志颖",178);
        System.out.println(map);

        Integer height = map.get("赵丽颖");
        System.out.println(height);
        System.out.println(map);

        Integer height2=map.get("赵丽颖");
        System.out.println(height2);
        System.out.println(map);

        Integer height3 = map.get("隔壁老王");
        System.out.println(height3);
        System.out.println(map);
    }

    private static void show04(){
        Map<String,Integer> map=new HashMap<>();
        map.put("赵丽颖",168);
        map.put("杨颖",165);
        map.put("林志颖",178);
        System.out.println(map);
        boolean b = map.containsKey("赵丽颖");
        System.out.println(b);
        boolean bb = map.containsKey("迪丽热巴");
        System.out.println(bb);
    }
}

补充一下:
原文链接
request.getParameterMap获取的map是键为string型,值为string数组型,因为在表单中,有可能出现类似于复选框这种东西。
下面的代码是输出获取到的map集合

Map<String, String[]> map = request.getParameterMap();
for(Iterator iter = map.entrySet().iterator(); iter.hasNext();) {
    Map.Entry element = (Map.Entry) iter.next();
    //key值
    Object strKey = element.getKey();
    //value,数组形式
    String[] value = (String[]) element.getValue();

    System.out.print(strKey.toString() + "=");
    for (int i = 0; i < value.length; i++) {
        System.out.print(value[i] + ",");
    }
    System.out.println();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

农民真快落

我琢磨着也没人给我打赏呀。。

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

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

打赏作者

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

抵扣说明:

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

余额充值