JAVA高级特性——Map接口及其实现类HashMap

Map概述

Map接口存储一组成对的键值对象,提供key到value的映射,通过key来检索。

Map接口中的key无序,不允许重复;value无序,但允许重复

public class CountriesInfo {
    public static void main(String[] args) {
        //创建集合对象,并将国家信息键值对放入集合
        Map countries =new HashMap();
        countries.put("China","中国");
        countries.put("USA","美国");
        countries.put("Japan","日本");
        countries.put("France","法国");
        //获取集合中存储元素个数
        System.out.println(countries.size());
        //获取集合中特风的key对应的value——返回的是Object类型,
        // 需要强制类型转换
        String country=(String)countries.get("China");
        System.out.println(country);



    }
}

Map中常用方法

话不多说,直接上代码:

public class CountriesInfo {
    public static void main(String[] args) {
        //创建集合对象,并将国家信息键值对放入集合
        Map countries =new HashMap();
        countries.put("China","中国");
        countries.put("USA","美国");
        countries.put("Japan","日本");
        countries.put("France","法国");
        //获取集合中存储元素个数
        System.out.println(countries.size());
        //获取集合中特风的key对应的value——返回的是Object类型,
        // 需要强制类型转换
        String country=(String)countries.get("China");
        System.out.println(country);

        //获取集合中特定的key对应的value,如果找不到则返回null
        String country2=(String)countries.get("Mada");
        System.out.println(country2);

        //判断集合中是否存在某个国家——boolean值
        System.out.println("是否存在键为china的国家:"+countries.containsKey("China"));

        //删除某个特定key对应的键值对
        System.out.println("是否存在键为USA的国家:"+countries.containsKey("USA"));
        countries.remove("USA");
        System.out.println("是否存在键为USA的国家:"+countries.containsKey("USA"));
        System.out.println(countries.size());
        //获取键的集合,值的集合,键值对的集合
        System.out.println(countries.keySet());
        System.out.println(countries.values());
        System.out.println(countries);
    }
}

遍历Map集合

方式一:遍历key,通过key——>value

方法1.通过迭代器Iterator实现遍历

方法2.通过增强for循环

方式二:遍历key——value对

一定要注意进行强制类型转换!!!

package cn.kgc.review1113;

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * @Author $(USER)
 * @Date $(DATE)
 * @Description
 */
public class CountriesInfo {
    public static void main(String[] args) {
        //创建集合对象,并将国家信息键值对放入集合
        Map countries =new HashMap();
        countries.put("China","中国");
        countries.put("USA","美国");
        countries.put("Japan","日本");
        countries.put("France","法国");
        //获取集合中存储元素个数
        System.out.println(countries.size());
        //获取集合中特风的key对应的value——返回的是Object类型,
        // 需要强制类型转换
        String country=(String)countries.get("China");
        System.out.println(country);

        //获取集合中特定的key对应的value,如果找不到则返回null
        String country2=(String)countries.get("Mada");
        System.out.println(country2);

        //判断集合中是否存在某个国家——boolean值
        System.out.println("是否存在键为china的国家:"+countries.containsKey("China"));

        //删除某个特定key对应的键值对
        System.out.println("是否存在键为USA的国家:"+countries.containsKey("USA"));
        countries.remove("USA");
        System.out.println("是否存在键为USA的国家:"+countries.containsKey("USA"));
        System.out.println(countries.size());
        //获取键的集合,值的集合,键值对的集合
        System.out.println(countries.keySet());
        System.out.println(countries.values());
        System.out.println(countries);
       



  //遍历Map,思路一:先遍历key,通过key——>value
        Set keys=countries.keySet();//获取Map中所有key,因为key无序且唯一,所以用Set类
             //方法一.通过增强for循环
        for(Object obj:keys){
            String key=(String)obj;//获取Map中的每一个key,强制类型转换
            String value=(String)countries.get(key);//根据Map中的每个key去获取对应的value
            System.out.println(key+"--"+value);
        }
             //方法二:迭代器Iterator遍历key的集合(Set)
        Iterator itor=keys.iterator();
        while(itor.hasNext()){
            String key=(String)itor.next();//获取Map中的每一个key,强制转换
            String value=(String)countries.get(key);//根据Map中的每个key去获取对应的value
            System.out.println(key+"--"+value);
        }

        //方式二:获取Map中的所有键值对,然后在键值对中分别获取key和value
        Set set=countries.entrySet();//新方法entrySet():获取Map中所有的键值对
        //遍历键值对的集合,把每个键值对拿出来,每个键值对都是Map.Entry()类型
        for(Object obj:set){
            Map.Entry me=(Map.Entry)obj;//强制转换为键值对类型
             String key=(String )me.getKey();//获取出来键值对中的键
            String value=(String )me.getValue();获取出来键值对中的值
            System.out.println(key+"--"+value);
        }
        
    }
}
 
 

おすすめ

転載: blog.csdn.net/kkkyzp/article/details/121308665