zoukankan      html  css  js  c++  java
  • Java ---------- 集合(三) Map接口

    Map 接口

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

    特点: key 不要求有序,不允许重复。value 不要求有序但允许重复

    常用方法:

    Object put(Object key,Object value)   :将相互关联的 key--value 放入集合,如果map 接口中包含了key对应的value 则旧值被替换

    Object remove(Object key) : 从当前集合中删除与指定key 相关的映射,并返回该key 关联的旧value,没关返回null

    Object get(Object key) : 获得与key 相关的value,如果key 不关联人和非null 的值,则返回null

    boolean containsKey(Object key)  判断集合中是否存在key

    boolean containsValue(Object Value) : 判断集合中是否存在value

    boolean isEmpty() :  判断集合中是否存在元素

    void clear()  : 清除集合中所有元素

    int size():    返回集合中元素数量

    Set keySet() :获取所有key 的集合

    Collection values() : 获取所有value 集合

    HashMap 类

                数据添加到HashMap 集合后,所有的数据类型将转换为Object 类型,取出的时候注意强转

                HashMap类不保证映射的顺序,特别是不保证顺序恒久不变

    package com.obge.contr;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import com.stu.contr.Dog;
    
    public class MapStu {
        public static void main(String[] args) {
            Dog dog1 = new Dog("小白",10);
            Dog dog2 = new Dog("大黄",11);
            //创建保存键 - 值对 的集合对象  向上转型
            Map mapDog = new HashMap();
            //使用put 方法按照键 -- 值的方式存储  均是object 类型,放入其他类型的会自动转换为object
            mapDog.put(1001, dog1);
            mapDog.put(1002, dog2);
            //输出存放了有多少个
            System.out.println("存了"+mapDog.size());
            //输出  键集
            System.out.println("键来:"+mapDog.keySet());
            //值来
            System.out.println(mapDog.values());
            //根据键获取值
            if(mapDog.containsKey(1001)) {
                //根据键值获取 对应的值对象
                Dog dog = (Dog)mapDog.get(1001);
                System.out.println("键名为1001的对应的名字为:"+dog.getName() );
                        
            }
    
            int key = 1002;
            if(mapDog.containsKey(key)) {
                //根据键值获取 对应的值对象
                Dog dog = (Dog)mapDog.get(key);
                System.out.println("键名为"+key+"的对应的名字为:"+dog.getName() );
                        
            }
            //判断值是否存在
            System.out.println("dog2 是否存在:"+mapDog.containsValue(dog2));
            
            //遍历键
            
            for(Object objMapKey : mapDog.keySet() ) {
                System.out.println(objMapKey.toString());
            }
            
            // 遍历值
            for(Object objValue: mapDog.values()) {
                Dog dog = (Dog)objValue;
                System.out.println("姓名:"+dog.getName()+"年龄:"+dog.getAge());
            }
                          
        }
        
    
    }

     三种遍历方式均可

    使用iterator

    package com.obge.boge;
    
    import com.obge.model.Animal;
    
    import java.util.*;
    
    public class HashMapStu {
    
        public static void main(String[] args) {
            Animal animal1 = new Animal("dog1",2,"n1");
            Animal animal2 = new Animal("dog2",1,"n1");
            Animal animal3 = new Animal("dog3",3,"n1");
            Map hashmap = new HashMap();
            hashmap.put("小1",animal1);
    
    
    
    
            hashmap.put("小2",animal2);
            System.out.println("元素中有:"+hashmap.size()+"个");
            System.out.println("有没有animal3:"+hashmap.containsValue(animal3));
            System.out.println("遍历所有");
    //        for(Object obj:hashSet){
    //            Animal animal = (Animal) obj;
    //            System.out.println(animal.getName());
    //        }
    //        System.out.println("判断是否为空"+hashSet.isEmpty());
            //获取集合迭代器   Iterator
    
            //可以强转也可以不用强转
            Set keyStr = hashmap.keySet();
            Iterator iterator = keyStr.iterator();
            //通过迭代器依次输出集合中元素
            while (iterator.hasNext()){
                // next() 方法返回要访问的下一个元素
                System.out.println(iterator.next());
            }
            //使用泛型强转   
            Collection<Animal>collValue = hashmap.values();
            Iterator<Animal> iterator1value = collValue.iterator();
            while (iterator1value.hasNext()){
                Animal animal = (Animal) iterator1value.next();
                System.out.println("名字:"+animal.getName());
            }
    
        }
    
    
    }
  • 相关阅读:
    [转]Nvidia 的Shadow 文章收集
    [转]Linear Depth Buffer(线性深度缓冲区)
    [转]ParallelSplit Shadow Maps on Programmable GPUs
    [转]Learning to Love your Zbuffer.
    SQL SERVER存储过程中使用事务
    VS2005+SQL2005 Reporting Service动态绑定报表(Web)
    Sql批量删除/插入
    存储过程中执行动态Sql语句
    存储过程中使用事务
    真正的全动态报表:RDLC+ReportViewer
  • 原文地址:https://www.cnblogs.com/obge/p/12493374.html
Copyright © 2011-2022 走看看