服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java Map集合使用方法全面梳理

Java Map集合使用方法全面梳理

2022-11-29 15:16LNORA Java教程

Map是一种依照键(key)存储元素的容器,键(key)很像下标,在List中下标是整数。在Map中键(key)可以使任意类型的对象。Map中不能有重复的键(Key),每个键(key)都有一个对应的值(value)。一个键(key)和它对应的值构成m

Map接口

          Map接口是双列集合,它的每一个元素都包含一个键对象key和值对象Value,键和值对象之间存在一种对应关系,称为映射,从Map集合中访问元素时,只要指定了Key,就能找到对应的Value。

Map的常用方法

 void put(Object key,Object value)//将指定的值与映射中的指定键关联
     Object get(Object key)//返回指定键所映射的值,如果此映射不包含该键的映射关系,则返回null
     boolean containsKey(Object key)//如果此映射包含指定键的映射关系,则返回true
     boolean containsValue(Object value)//如果此时映射将一个或多个键映射到指定值,则返回true
     Set keySet()//返回此映射中包含的值的Set视图
     Collection<V>values()//返回此映射中包含的值的Collection视图
     Set<Map.Entry<K,V>>entrySet()//返回此映射中包含的映射关系的Set视图

HashMap集合

             HashMap集合是Map接口的一个实现类,它用于存储键值映射关系,但必须保证不出现重复的键。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package 集合类;
import java.util.HashMap;
import java.util.Map;
public class Long {
    public static void main(String[] args) {
        Map map=new HashMap();
        map.put("1","lilong");
        map.put("2","xiaolong");
        map.put("3","dalong");
        System.out.println("1:"+map.get("1"));
        System.out.println("2:"+map.get("2"));
        System.out.println("3:"+map.get("3"));
    }
}

运行结果

Java Map集合使用方法全面梳理

       首先通过Map的put方法向集合中加入3个元素,然后通过Map的get方法获取与键对应的值,如果存储了相同的键,后存储的值会覆盖原有的值,也就是键相同,值覆盖。

先遍历Map集合中所有的键,再根据键获取相应的值(如下)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package 集合类;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Li {
    public static void main(String[] args) {
        Map map=new HashMap();
        map.put("1","lilong");
        map.put("2","xiaolong");
        map.put("3","dalong");
        Set keySet= (Set) map.keySet();
        Iterator it= keySet.iterator;
        while(it.hasNext()){
            Object key=it.next();
            Object value=map.get( key);
            System.out.println(key+":"+value);
        }
    }
}

运行结果

Java Map集合使用方法全面梳理

       先通过hasnext()方法遍历Map,调用Map对象的keySet()方法,获得存储Map中所有键的Set集合,然后通过Iterator迭代Set集合的每一个元素,每一个键都通过get方法获取对应的值。

Map集合可以先获取集合中所有的映射关系,然后从映射关系中取出值和键。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package 集合类;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Xiao {
    public static void main(String[] args) {
        Map map=new HashMap();
        map.put("1","lilong");
        map.put("2","xiaolong");
        map.put("3","dalong");
        Set entrySet= (Set) map.entrySet();
        Iterator it= entrySet.iterator;
        while(it.hasNext()){
            Map.Entry entry=(Map.Entry) (it.next());
            Object key=entry.getKey();
            Object value=entry.getValue();
            System.out.println(key+":"+value);
        }
    }
}

运行结果

Java Map集合使用方法全面梳理

      首先调用Map对象的entrySet()方法获得存储在Map中所有映射的Set集合,这个集合中存放了Map.Entry类型的元素,每一个Map.Entry对象代表Map中的一个键值对,然后迭代Set集合,获得每一个映射对象,并分别调用映射对象的getKey()方法和getValue()方法获取键和值。

Map集合还提供了一个values()方法,通过这个方法可以直接获取Map中存储所有值的Collection集合。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package 集合类;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class LiXiao {
    public static void main(String[] args) {
        Map map=new HashMap();
        map.put("1","lilong");
        map.put("2","xiaolong");
        map.put("3","dalong");
        Collection values=map.values();
        Iterator it=values.iterator();
        while(it.hasnext()){
            Object value=it.next();
            System.out.println(value):
        }
    }
}

运行结果

Java Map集合使用方法全面梳理

通过调用Map的value()方法获取包含Map中所有值的Collection集合,然后迭代出集合中的每一个值。

            HashMap集合迭代出来元素的顺序和存入的顺序是不一致的,要想使两个顺序一致,可以使用Java中提供的LinkdedHashMap类,它可以使用双向链表来维护内部元素的关系,使Map元素迭代的顺序与存入的顺序一致。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.Map;
public class Long {
    public static void main(String[] args) {
        Map map=new LinkedHashMap();
        map.put("1","lilong");
        map.put("2","xiaolong");
        map.put("3","dalong");
        Set keySet= (Set) map.keySet();
        Iterator it= keySet.iterator;
        while(it.hasNext()){
            Object key=it.next();
            Object value=map.get( key);
            System.out.println(key+":"+value);
        }
    }
}

运行结果

Java Map集合使用方法全面梳理

Properties集合

Properties主要来存储字符串类型的键和值,可以使用Properties集合来存取应用的配置项。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package 集合类;
import java.util.Enumeration;
import java.util.Properties;
public class Xiao {
    public static void main(String[] args) {
        Properties p=new Properties();
        p.setProperty("Backgroup-color","red");
        p.setProperty("Font-size","14px");
        p.setProperty("Language","chinese");
        Enumeration names=p.propertyNames();
        while(names.hasMoreElements()){
            String key=(String) names.nextElement();
            String value=p.getProperty(key);
            System.out.println(key+"="+value);
        }
    }
}

运行结果

            在Properties类中,针对字符串的存取提供了两个专用的方法,setProperty()和getProperty()。setProperty()方法用于将配置项的值和键添加到Properties集合当中。然后通过调用Properties的propertyNames()方法得到一个包含所有键的Enumeration对象,然后在遍历所有的键时,通过调用getProperty()方法得到键所对应的值。

Java Map集合使用方法全面梳理

到此这篇关于Java Map集合使用方法全面梳理的文章就介绍到这了,更多相关Java Map集合内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/m0_55749088/article/details/123921016

延伸 · 阅读

精彩推荐
  • Java教程java邮件发送的实现

    java邮件发送的实现

    本篇是用于java来实现邮件的发送的实例代码,基于smtp服务,有需要的可以参考一下。...

    常风1872020-06-23
  • Java教程JavaCV实现人脸检测功能

    JavaCV实现人脸检测功能

    这篇文章主要为大家详细介绍了JavaCV实现人脸检测功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Taily老段7132021-04-02
  • Java教程Java程序员必须熟记流程图

    Java程序员必须熟记流程图

    线程池:一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的...

    今日头条4072019-09-05
  • Java教程SpringMVC解析JSON请求数据问题解析

    SpringMVC解析JSON请求数据问题解析

    这篇文章主要介绍了SpringMVC解析JSON请求数据问题解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    木叶之荣4722020-09-09
  • Java教程Spring Boot 日志配置方法(超详细)

    Spring Boot 日志配置方法(超详细)

    默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。下面通过本文给大家介绍Spring Boot 日志配置方法详解,感兴趣的朋友参考下吧 ...

    Inke3682020-09-15
  • Java教程如何使用CountDownLatch同步java多线程

    如何使用CountDownLatch同步java多线程

    这篇文章主要介绍了如何使用CountDownLatch同步java多线程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    志不坚者智不达2922020-08-06
  • Java教程Java字符流与字节流区别与用法分析

    Java字符流与字节流区别与用法分析

    这篇文章主要介绍了Java字符流与字节流区别与用法,较为详细的分析了java字符流与字节流的概念、功能与使用方法,具有一定参考借鉴价值,需要的朋友可以...

    雨竹2652020-05-21
  • Java教程Java由浅入深通关抽象类与接口上

    Java由浅入深通关抽象类与接口上

    在类中没有包含足够的信息来描绘一个具体的对象,这样的类称为抽象类,接口是Java中最重要的概念之一,它可以被理解为一种特殊的类,不同的是接口的...

    星鸦wyk8802022-11-24