Map集合

本文详细介绍了Java中的Map集合,包括其特点、常用方法及两种遍历方式。通过具体实例展示了HashMap的基本操作,如添加、删除、查找等,并解释了如何通过键集和Entry对象来遍历Map集合。

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

java.util.map<k,v>集合Map是一个接口
Map集合的特点:
1、Map集合是一个双列集合,一个元素包含两个值(一个是key,一个是value)
2、Map集合中的元素,key和value的数据类型可以相同也可以不同
3、Map集合中 元素,Key是不允许重复,value可以重复
4、Map集合中的元素,key和value是一一对应
java.util.hashMap<k,v>集合implements Map<k,v>接口
HashMap集合的特点:
1、HashMap集合底层是哈希表:查询速度特别快
2、HashMap集合是一个无序集合,存储元素和取出元素顺序有可能不同
java.util.LinkedHashMap<k,v>集合extends HashMap<k,v>集合
LikedHashMap的特点:
1、LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
2、LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
常用方法:1、public V put (K key,V value):把指定的值加入Map集合中
返回值:V
在存储的时候,Key不能重复,返回值是null
存储值对的时候key重复,会使用新的value替换map中重复的value,返回被替换的value
2、public V remove (Object key):把指定的键所对应的键值对应的元素再Map中删除,返回删除的值
返回值:V,若k存在,v返回被删除的值,k不存在,v返回null
3、public V get(Object key):根据指定的键,在Map集合中获取对应的值
返回值:key存在,返回对应的value值,key不存在,返回的是null
4、boolean containsKey(Object key)判断集合中是否包含指定的键
包含返回true不包含返回false

import java.util.HashMap;
import java.util.Map;
public class demoCollection {
    public static void main(String[] args) {
        show();
        show1();
        show3();
        show4();
    }
    public static void show(){
        Map<String,String> map=new HashMap<>();
        /*public V put (K key,V value):把指定的值加入Map集合中
        返回值:V
        在存储的时候,Key不能重复,返回值是null
        存储值对的时候key重复,会使用新的value替换map中重复的value,返回被替换的value*/
        String a=map.put("李晨","范冰冰1");
        String b=map.put("李晨","范冰冰2");
        System.out.println(a);
        System.out.println(b);
        System.out.println(map);
        map.put("冷锋","龙小云");
        map.put("杨过","小龙女");
        map.put("尹志平","小龙女");
        System.out.println(map);//{杨过=小龙女, 尹志平=小龙女, 李晨=范冰冰2, 冷锋=龙小云}
    }
    public static void show1(){
        /*public V remove (Object key):把指定的键所对应的键值对应的元素再Map中删除,返回删除的值
        返回值:V,若k存在,v返回被删除的值,k不存在,v返回null*/
        Map<String,Integer> map=new HashMap<>();
        map.put("赵丽颖",163);
        map.put("杨颖",165);
        map.put("林志玲",173);
        System.out.println(map);
        Integer v=map.remove("林志玲");
        System.out.println("v:"+v);
        System.out.println(map);
        Integer v2=map.remove("林志颖");//如果没有这个值,那么返回的值就是空
        System.out.println(map);
        System.out.println(v2);
    }
    public static void show3(){
        Map<String,Integer> map=new HashMap<>();
        map.put("赵丽颖",163);
        map.put("杨颖",165);
        map.put("林志玲",173);
        Integer a=map.get("林志颖");
        System.out.println(a);
        Integer b=map.get("林志玲");
        System.out.println(b);
    }
    public static void show4(){
        //boolean containsKey(Object key)判断集合中是否包含指定的键
        //包含返回true不包含返回false
        Map<String,Integer> map=new HashMap<>();
        map.put("赵丽颖",163);
        map.put("杨颖",165);
        map.put("林志玲",173);
        Boolean a=map.containsKey("赵丽颖");
        System.out.println(a);
        boolean b=map.containsKey("林志玲");
        System.out.println(b);
    }
}

遍历Map集合

Map集合的第一种遍历方式;通过键找值的方式
Map集合中的方法:
Set keySet()返回此映射中包含的键的Set视图
实现步骤:1、使用Map集合中的方法keySet()把集合重点key取出来存储到一个集合Set集合中
2、遍历set集合,获取Map集合中的每一个key
3、通过Map集合中的方法get(key)通过key找到value

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class demoKeySet {
    public static void main(String[] args) {
        Map<String,Integer> map=new HashMap<>();
        map.put("赵丽颖",163);
        map.put("杨颖",165);
        map.put("林志玲",173);
        //使用Map集合中的方法keySet()把集合重点key取出来存储到一个集合Set集合中
        Set<String> set=map.keySet();
        //遍历set集合,获取Map集合中的每一个key
        Iterator<String> it=set.iterator();
        while(it.hasNext()){
            //通过Map集合中的方法get(key),通过key找value
            String key=it.next();
            Integer value=map.get(key);
            System.out.println(key+"="+value);
        }
        //使用增强for遍历Set集合
        for(String key:set){
            //通过Map集合中的方法get(key),通过key找value
            Integer value=map.get(key);
            System.out.println(key+"="+value);
        }
    }
}

标题Map遍历第二种方式;使用Entry对象遍历

Map遍历第二种方式;使用Entry对象遍历
Map集合中的方式:
Set<Map.Entry<K,V>> entrySet()返回此映射中包含的映射关系的Set视图
实现步骤:1、使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
2、遍历Set集合,获取每一个Entry对象
3、使用Entry对象中的方法getKay()和getValue()获取键与值

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Iterator;
public class demoEntry {
    public static void main(String[] args) {
        Map<String,Integer> map=new HashMap<>();
        map.put("赵丽颖",163);
        map.put("杨颖",165);
        map.put("林志玲",173);
        //使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
        Set<Map.Entry<String,Integer>> set=map.entrySet();
        //遍历Set集合,获取每一个Entry对象
        Iterator<Map.Entry<String,Integer>> it=set.iterator();
        while(it.hasNext()){
            Map.Entry<String,Integer>entry= it.next();
            //使用Entry对象中的方法getKay()和getValue()获取键与值
            String key= entry.getKey();
            Integer value= entry.getValue();
            System.out.println(key+"="+value);
        }
        for (Map.Entry<String,Integer> entry:set){
            //使用Entry对象中的方法getKay()和getValue()获取键与值
            String key= entry.getKey();
            Integer value= entry.getValue();
            System.out.println(key+"="+value);
        }
    }
}


内容概要:本文以电商仓储物流机器人为案例,深度解析机器人开发全流程,涵盖ROS系统搭建、SLAM建图、路径规划、机械臂控制、多机调度等核心技术。首先介绍了分层模块化架构和核心硬件选型,如主控制器、激光雷达、深度相机、驱动底盘和协作机械臂。接着详细讲述了ROS系统开发的核心实战,包括环境感知与SLAM建图、自主导航与动态避障等技术,提供了代码示例和技术关键点。然后探讨了机械臂抓取任务开发,涉及视觉定位系统、运动规划与力控制。随后介绍了多机器人集群调度系统的任务分配模型和通信架构设计。还讨论了安全与可靠性保障措施,包括硬件级安全设计和软件容错机制。最后总结了实战问题与解决方案,以及性能优化成果,并推荐了四大核心代码库和仿真训练平台。 适合人群:对机器人开发感兴趣的研发人员,尤其是有一定编程基础并希望深入了解仓储机器人开发的技术人员。 使用场景及目标:①学习仓储机器人从系统集成到底层硬件部署的全流程;②掌握ROS系统开发的核心技术,如SLAM建图、路径规划、机械臂控制等;③理解多机器人集群调度和安全可靠性设计;④解决实际开发中的常见问题并优化系统性能。 阅读建议:本文内容详实,涵盖了从硬件选型到软件开发的各个方面,建议读者结合实际项目需求,逐步深入学习,并通过实践操作加深理解。同时,利用提供的开源项目和仿真训练平台进行实验和验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值