• Java中的Map集合


    Map集合:

          个人感觉Map接口以后会经常用到,可以很清晰地查找某个对象,要熟悉其四种遍历方法。特别注意其键值对的键不能是重复的,有想定义有序存取的话,可以使用LinkedHashMap集合。不过定义自定义对象时,要复写其对象的hashCode和equals方法。静态导入的话,不用编辑器的话可以使用下。再定义方法时有多个参数的话,可以使用可变参数,不过只能一个且在最后面。Collections的工具类可以对数据进行升序和打乱顺序。集合是可以嵌套的。

    Map接口概述:

       Map接口下的集合与Collection接口下的集合存储数据的不同在于:

      Map中的集合,元素是以键值对的形式存在的,但是集合中不能包含重复的键,值可以重复,每个键只能对应一个值。常用集合为HashMap集合、LinkedHashMap集合(有序)

    常用方法:

    1、get():获取指定键对应的值;

    2、put():将指定的键与值对应起来,并添加到集合中,返回对应的值,无的话返回null;

    3、remove():移除

    Map集合遍历键找值方式:

    keySet() 返回此key所在的Set集合

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    public class Demo01 {
    
    	public static void main(String[] args) {
    		Map<String,Integer> map=new HashMap<String,Integer>();
    		//存值
    		map.put("tom", 18);
    		map.put("jerry",19);
    		map.put("rose",18);
    		map.put("tom",18);
    		//删除元素
    		map.remove("rose");
            //取值
    		System.out.println(map.get("tom"));
    		System.out.println(map.get("jerry"));
    		System.err.println(map.get("rose"));
    		//遍历
    		//1.KeySet+增强for
    		//获取所有key所在的Set集合
    		Set<String> keys=map.keySet();
    		//遍历Set集合取到每一个Key,然后再根据key找到对应的值
    		for(String key:keys){
    			System.out.println(key+"..."+map.get(key));
    		}
    		System.out.println("...");
    		//2.Keyset+iterator
    		Set<String> set2=map.keySet();
    		Iterator<String> it=set2.iterator();
    		while(it.hasNext()){
    			String p=it.next();
    			System.out.println(p+"..."+map.get(p));
    		}
    		}
    

      

    Entry键值对对象:Map.Entry<K,V>

    在Map类设计时,提供了一个嵌套接口(又定义一个接口):Entry。Entry将键值对的对应关系封装成了对象。即键值对对象。

    方法:

    getKey()    返回Entry对象中的键

    getValue()  返回Entry对象中的值

    entrySet()     用于返回Map集合中所有的键值对(Entry)对象,以Set集合形式返回。

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    public class Demo02 {
        public static void main(String[] args) {
            Map<String,String> map=new HashMap<String,String>();
            map.put("1","a");
            map.put("2","a");
            map.put("3","b");
            map.put("3","c");
            //entrySet遍历(增强for遍历)
            //1.获取所有结婚证对象存在的Set集合;
            /*Set<Map.Entry<String,String>> set=map.entrySet();
            //2.遍历所有结婚证取到每一个结婚证
            for(Map.Entry<String, String> entry:set){
                //3.通过每一个结婚证对象获取key
                String key=entry.getKey();
                //4.通过每一个结婚证对象获取value;
                String value=entry.getValue();
                System.out.println(key+"...."+value);
            }*/
            //迭代器遍历
            Set<Map.Entry<String,String>> set=map.entrySet();
            Iterator<Map.Entry<String,String>> it=set.iterator();
            while(it.hasNext()){
                Map.Entry<String,String> entry=it.next();
                String key=entry.getKey();
                String value=entry.getValue();
                System.out.println(key+"..."+value);
            }

    HashMap存储自定义类型键值:

    当给HashMap中存放自定义对象时,如果自定义对象作为key存在,这时要保证对象唯一,必须复写对象的hashCode和equals方法

    如果要保证map中存放的key和取出的顺序一致,可以使用LinkedHashMap集合来存放。

  • 相关阅读:
    DB2 for Z/os Statement prepare
    Foreign key (referential) constraints on DB2 LUW v105
    复制Informational constraints on LUW DB2 v105
    DB2 SQL Mixed data in character strings
    DB2 create partitioned table
    MVC中使用EF的技巧集(一)
    Asp.Net MVC 开发技巧(二)
    Linq使用技巧及查询示例(一)
    Asp.Net MVC 开发技巧(一)
    Asp.Net MVC Identity 2.2.1 使用技巧(八)
  • 原文地址:https://www.cnblogs.com/heitaitou/p/12880603.html
Copyright © 2020-2023  润新知