• Java_Map集合LinkedHashMap


      P地址和主机名,身份证号和个人,系统用户名与系统用户对象等,这种一一对应的关系,把它称之为映射。Java当中提供了专门的集合类用来存放这种映射关系的对象。

    • Collection中的集合,元素是孤立存在的(单身),向集合中存储元素采用一个一个元素存储的方式进行存储。

    • Map中的集合,元素是成对存在的(夫妻),每个元素由键和值两部分组成。通过键可以找到对应的值。

    • Collection中的集合我们称之为单列集合,Map中的集合我们称之为双列集合

    • ****:Map中的集合不能包含重复的键,值可以重复,每个键对应唯一一个值。

    Map中的常用子类

    • HashMap:存储数据采用的哈希表结构,元素的存取顺序可能不一致,由于要保证键的唯一性,不重复,需要重写键的hashCode方法和equals方法。

    • LinkedHashMap:HashMap下面有个子类LinkedHashMap,存储数据的方式是采用哈希表结构+链表结构,通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证键的唯一、不重复,需要重写键的hashCode方法和equals方法。

      ***Map接口当中,含有两个泛型变量,在使用时,要为两个泛型变量赋予数据类型,两个泛型变量的数据类型可以相同,也可以不同。

    Map接口当中的常用API方法Map<K,V>

    常用方法:

    • public V put(K key,V value):把指定的键与指定的值添加到Map集合当中

    • public V remove(Object key):把指定的键所对应的键值对元素从Map集合当中删除,返回被删除元素的值

    • public V get(Object key):根据指定的键 获得在Map集合当中对应的值

    • public Set<K> keySet(): 获取Map集合当中的所有的key值,存储到Set集合当中

    • public Set<Map.Entry<K,V>> entrySet():获取到Map集合当中的所有的键值对对象的集合(Set集合)

    HashMap存储自定义类型键值

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

    如果要保证map中存储元素的顺序。主要体现在key值,可以用LinkedHashMap集合来存放

      ***HashMap保证成对元素的唯一,并且查询速度相对较快,但是成对元素存放进去无法保证顺序,既要保证有序,又要保证速度快可以使用LinkedHashMap

    HashTable

    java.util.Hashtable<K,V> implements Map<K,V>接口

    • Hashtable:底层是一个哈希表,是一个线程安全的集合,是单线程的集合,速度慢

    • HashMap: 底层也是一个哈希表,是一个线程不安全的集合,是多线程的集合,速度快

    • HashMap集合:可以存储null key值,null value值

    • Hashtable集合:不可以存储null值,null键

    • Hashtable 和 Vector集合一样,在JDK1.2版本之后被更先进的集合(HashMap,ArrayList)取代了

    • Hashtable有一个子类Properties依然活跃在历史的舞台上

    • Properties集合是一个唯一和IO流相结合的集合

    计算一个字符串中每个字符出现的次数
    public static void show() {
            LinkedHashMap<Character, Integer> map = new LinkedHashMap<>();
            String s = "hellowordhelloword";
            for (int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
                if (map.get(c) == null) {
                    map.put(c, 1);
                } else {
                    map.put(c, map.get(c) + 1);
                }
            }
            System.out.println(map);
        }
  • 相关阅读:
    Django 用ModelForm批量保存form表单(非常实用的方法) mfor_verity项目
    jquery ajax异步提交表单数据的方法
    python字符串转换成变量的几种方法
    django 线上线下使用不同的数据库 上线:mysql 线下sqlite3 以及debug模式的开和关
    django admin 或xdmin list_display search_fields list_filter 如果显示搜索外键或多对多字段
    nonce和timestamp在Http安全协议中的作用
    Web API接口 安全验证
    .Net环境下的缓存技术介绍
    .Net缓存管理框架CacheManager
    在asp.net web api中利用过滤器设置输出缓存
  • 原文地址:https://www.cnblogs.com/9080dlb/p/14123342.html
Copyright © 2020-2023  润新知