Java集合5

Java集合5

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:

作者:陈剑波

撰写时间:2019年06月18日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Map集合

Map集合使用键(key)值(value)来保存数据,其中值(value)可以重复,但键(key)必须是唯一,也可以为空,但最多只能有一个key为空,给定一个键和一个值,你可以将该值存储在一个Map对象里面,你可以通过键来访问对应的值。Map集合的主要实现类有HashMap、LinkedHashMap、TreeMap。

示例代码:

import java.util.Collection;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

 

/**

 * @author KO.ZERO HashMapHashtable都是Map接口的典型实现类。 区别:

 * Hashtable是线程安全的,HashMap是线程不安全的,所以HashMapHashtable的性能高一点。

 * Hashtable不允许使用null作为keyvalue;但HashMap可以使用null作为keyvalue

 * HashMapHashtable判断两个value相等的标准:只要两个对象通过equals方法比较返回true即可。

 */

public class HashMapAndHashTable {

    public static void main(String[] args) {

        Map<Integer, String> map = new HashMap<Integer, String>();

        // 添加元素

        map.put(1, "鲁夫");// put(K key, V value):将指定的值与此映射中的指定键关联(可选操 作)。

        map.put(2, "索隆");

        map.put(3, "索隆");

        map.put(4, "山治");

        map.put(5, "堪平");

        map.put(6, "乌索普");

        // 可以添加相同的Key值,但是添加的value值会被前面的覆盖的,返回值是前一个,如果没有就返回null

        map.put(6, "乌索八");

        System.out.println(map);

        Map<Integer, String> map2 = new HashMap<Integer, String>();

        map2.put(7, "娜美");

        map2.put(8, "罗宾");

        map2.put(9, "白星");

        map2.put(10, "薇薇");

        // putAll(Map m):从指定映射中将所有映射关系复制到此映射中(可 选操作)。

        map.putAll(map2);

        System.out.println(map);

        // containsKey(Object key):如果此映射包含指定键的映射关系,则返回 true

        System.out.println("containsKey" + map.containsKey(8));

        // containsValue(Object value):如果此映射将一个或多个键映射到指定值,则返回 true

        System.out.println("containsValue" + map.containsValue("白星"));

        // size():返回此映射中的键­值映射关系数。

        System.out.println("集合大小:" + map.size());

        // isEmpty():如果此映射未包含键­值映射关系,则返回 true

        System.out.println("集合是否为空:" + map.isEmpty());

        // get(Object key):返回指定键所映射的值;如果此映射不包含该键的 映射关系,则返回 null

        System.out.println("" + map.get(7));

        // keySet():返回此映射中包含的键的 Set 视图。

        Set<Integer> set = map.keySet();// 返回所有的key对象的Set集合

        Iterator<Integer> iterator = set.iterator();

        while (iterator.hasNext()) {

            Integer integer = (Integer) iterator.next();

            // 使用get()方法返回指定键所映射的值。

            System.out.print("keySet()"+"键:" + integer + " 值:" + map.get(integer) + " |");

        }

        System.out.println();

        // values():返回此映射中包含的值的 Collection 视图。

        Collection<String> collection = map.values();// 获取所有的值

        for (Iterator<String> iterator2 = collection.iterator(); iterator2

                .hasNext();) {

            String string = iterator2.next();

            System.out.print("values()"+"值:" + string + " |");

        }

        System.out.println();

        // entrySet():返回此映射中包含的映射关系的 Set 视图。

        Set<Map.Entry<Integer, String>> entries = map.entrySet();//map集合中的键值映射关系打包成一个对象

        //Map.Entry对象通过Map.Entry对象的getKey

        //getValue获取其键和值。

        Iterator<Map.Entry<Integer, String>> iterator2 = entries.iterator();

        while (iterator2.hasNext()) {

            Map.Entry<java.lang.Integer, java.lang.String> entry = (Map.Entry<java.lang.Integer, java.lang.String>) iterator2

                    .next();

            Integer key = entry.getKey();//getKey():返回与此项对应的键。

            String value = entry.getValue();//getValue():返回与此条目对应的值

            System.out.print("entrySet()"+"键:" + key + "值:" + value + " |");

        }

        System.out.println();

        // remove(Object key):如果存在一个键的映射关系,则将其从此映射中移 除(可选操作)。

        System.out.println("删除键10,包括关联对象:"+map.remove(10));

        System.out.println(map);

        // clear():从此映射中移除所有映射关系(可选操作)。

        map2.clear();//清空集合

        System.out.println("map2="+map2);

    }

}

运行结果:

{1=鲁夫, 2=索隆, 3=索隆, 4=山治, 5=堪平, 6=乌索八}

{1=鲁夫, 2=索隆, 3=索隆, 4=山治, 5=堪平, 6=乌索八, 7=娜美, 8=罗宾, 9=白星, 10=薇薇}

containsKeytrue

containsValuetrue

集合大小:10

集合是否为空:false

娜美

keySet():键:1 值:鲁夫 |keySet():键:2 值:索隆 |keySet():键:3 值:索隆 |keySet():键:4 值:山治 |keySet():键:5 值:堪平 |keySet():键:6 值:乌索八 |keySet():键:7 值:娜美 |keySet():键:8 值:罗宾 |keySet():键:9 值:白星 |keySet():键:10 值:薇薇 |

values():值:鲁夫 |values():值:索隆 |values():值:索隆 |values():值:山治 |values():值:堪平 |values():值:乌索八 |values():值:娜美 |values():值:罗宾 |values():值:白星 |values():值:薇薇 |

entrySet():键:1值:鲁夫 |entrySet():键:2值:索隆 |entrySet():键:3值:索隆 |entrySet():键:4值:山治 |entrySet():键:5值:堪平 |entrySet():键:6值:乌索八 |entrySet():键:7值:娜美 |entrySet():键:8值:罗宾 |entrySet():键:9值:白星 |entrySet():键:10值:薇薇 |

删除键10,包括关联对象:薇薇

{1=鲁夫, 2=索隆, 3=索隆, 4=山治, 5=堪平, 6=乌索八, 7=娜美, 8=罗宾, 9=白星}

map2={}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值