Map集合

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);
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值