Java中Map集合

Map集合特点

Map是一个无序,不重复,无索引,键值对的集合。键不可以重复,值可以重复,键重复则后者覆盖前者,Map集合没有继承Collection接口。

Map中常用的API

package collection.map.d6_map_api;

import java.util.*;

/**
    map集合常用api
 */
public class MapDemo {
    public static void main(String[] args) {
        //1.创建map集合,添加数据并输出
        Map<String,Integer> maps=new HashMap<>();
        maps.put("iphoneX",10);
        maps.put("娃娃",20);
        maps.put("iphoneX",100);//map集合后面重复的键对应的元素会覆盖前面重复的整个元素
        maps.put("huawei",100);
        maps.put("生活用品",10);
        maps.put("手表",10);

        System.out.println(maps);

        //2.清空集合
//        maps.clear();
//        System.out.println(maps);

        //3.判断集合是否为空,为空返回true,否则反之
        System.out.println(maps.isEmpty());

        //4.根据键获取对应值:public V get(Object key)
        Integer key=maps.get("huawei");
        System.out.println(key);

        System.out.println(maps.get("生活用品"));;

        //5.根据键删除整个元素(返回键的值)
        System.out.println(maps.remove("iphoneX"));
        System.out.println(maps);

        //6.判断是否包含某个键,包含返回true,否则反之
        System.out.println(maps.containsKey("huawei"));//true
        System.out.println(maps.containsKey("iphoneX"));//false

        //7.是否包含某个值
        System.out.println(maps.containsValue(100));
        System.out.println(maps.containsValue(55));

        //8.获取全部键的集合public Set<K> keySet()
        Set<String> keys=maps.keySet();
        System.out.println(keys);

        //9.获取全部的值集合:Collection<V> values()
        Collection<Integer> values=maps.values();
        System.out.println(values);

        //10.集合大小
        System.out.println(maps.size());

        //11.合并其他集合
        Map<String,Integer> map1=new HashMap<>();
        map1.put("Java1",1);
        map1.put("Java2",100);

        Map<String,Integer> map2=new HashMap<>();
        map2.put("Java2",1);//覆盖前面的Java2
        map2.put("Java3",100);

        map1.putAll(map2);//map2拷贝到map1

        System.out.println(map1);
        System.out.println(map2);

    }
}

Map集合的遍历

共有三种遍历方式:

1.键找值

2.键值对

3.Lambda表达式

package collection.map.d7_map_traversal;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.function.BiConsumer;

/**
    map集合的遍历
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<String,Integer> maps=new HashMap<>();
        //添加元素:无序,不重复,无索引。
        maps.put("iphoneX",10);
        maps.put("娃娃",20);
        maps.put("huawei",100);
        maps.put("生活用品",10);
        maps.put("手表",10);

        //1.键找值遍历
        //第一步:先拿到集合的全部键
        Set<String> keys=maps.keySet();

        //第二步:遍历每个键,根据键提取值
        for (String key : keys) {
            int value =maps.get(key);
            System.out.println(key+"==>"+value);
        }

        System.out.println("----------------------------");

        //2.键值对遍历
        //第一步:把Map集合转化为Set集合
        Set<Map.Entry<String, Integer>> entries = maps.entrySet();

        //第二步:开始遍历
        for(Map.Entry<String, Integer> entry:entries){
            String key=entry.getKey();
            int value=entry.getValue();
            System.out.println(key+"==>"+value);
        }

        System.out.println("----------------------------");

        //3.Lambda表达式
        maps.forEach(new BiConsumer<String, Integer>() {
            @Override
            public void accept(String key, Integer value) {
                System.out.println(key+"==>"+value);
            }
        });

        System.out.println("----------------------------");
        //简化
        maps.forEach(( k,  v)-> {System.out.println(k+"==>"+v);});

    }

}

TreeMap集合

TreeMap集合自带排序(可排序,不重复(只要大小一样就认为重复),无索引)。

示例代码

package collection.map.d9_map_impl;

import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;

public class TreeMapDemo {
    public static void main(String[] args) {
        //TreeMap集合自带排序(可排序,不重复(只要大小一样就认为重复),无索引)
        //可自定义排序
        Map<Integer,String> maps1=new TreeMap<>(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });
        maps1.put(2,"张三");
        maps1.put(4,"李四");
        maps1.put(1,"马五");
        maps1.put(19,"赵六");


        System.out.println(maps1);



    }
}

运行截图

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值