zoukankan      html  css  js  c++  java
  • HashMap和LinkedHashMap

     HashMap集合

    HashMap存取没有顺序

    HashMap存储自定义类型键值

    实例

    l  学生类

    publicclass Student {

         private String name;

         privateintage;

     

         //编写构造方法,文档中已省略

         //编写get,set方法,文档中已省略

         //编写toString方法,文档中已省略

    }

    l  测试类

    publicclass HashMapTest {

         publicstaticvoid main(String[] args) {

             //1,创建hashmap集合对象。

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

            

             //2,添加元素。

             map.put(new Student("lisi",28), "上海");

             map.put(new Student("wangwu",22), "北京");

             map.put(new Student("zhaoliu",24), "成都");

             map.put(new Student("zhouqi",25), "广州");

             map.put(new Student("wangwu",22), "南京");

            

             //3,取出元素。键找值方式

             Set<Student>keySet = map.keySet();

             for(Student key : keySet){

                  String value = map.get(key);

                  System.out.println(key.toString()+"....."+value);

             }

            

             //取出元素。键值对方式

             Set<Map.Entry<Student, String>>entrySet = map.entrySet();

             for (Map.Entry<Student, String>entry : entrySet) {

                  Student key = entry.getKey();

                  String value = entry.getValue();

                  System.out.println(key.toString()+"....."+value);

             }

         }

    }

    l  当给HashMap中存放自定义对象时,如果自定义对象作为key存在,这时要保证对象唯一,必须复写对象的hashCode和equals方法(如果忘记,请回顾HashSet存放自定义对象)。

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

     

     

    LingkedHashMap集合

    LingkesHashMap存储取出有序

    LinkedHashMap<person, String> map = new LinkedHashMap<person, String>();
    person p1 = new person("张三", 18);
    person p2 = new person("张si", 20);
    person p3 = new person("张三", 18);
    map.put(p1, "一般");
    map.put(p2, "二般");
    map.put(p3, "三般");
    Set<person> set=map.keySet();
    for(person s:set){
    System.out.println(s+"...."+map.get(s));
    }
    }

     

  • 相关阅读:
    AcWing 1135. 新年好 图论 枚举
    uva 10196 将军 模拟
    LeetCode 120. 三角形最小路径和 dp
    LeetCode 350. 两个数组的交集 II 哈希
    LeetCode 174. 地下城游戏 dp
    LeetCode 面试题 16.11.. 跳水板 模拟
    LeetCode 112. 路径总和 递归 树的遍历
    AcWing 1129. 热浪 spfa
    Thymeleaf Javascript 取值
    Thymeleaf Javascript 取值
  • 原文地址:https://www.cnblogs.com/1997WY/p/10442181.html
Copyright © 2011-2022 走看看