map集合

    xiaoxiao2022-07-07  203

    集合框架—map集合

    1.list去重问题

    1.list去重的问题: ArrayList 数组 依赖于contains,对象的去重是依赖于equals set的去重 HashSet 哈希表 HashSet沿用了set的特点,本身是不能存放重复元素 调用add方法的时候,就在自动调用hashCode、equals treeset 自然排序 赋予将要添加的元素比较性 比较器排序 让容器具有比较性 二叉树 常用的算法 冒泡排序、选择排序、二分搜索法、希尔排序

    2、集合框架Map介绍

    map集合中存放的都是一组组映射关系 key=value 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 (key=value) 此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。 常见的方法有:

    探究put/entrySet(性能优)/keySet

    put : 1.添加集合元素的同事,它可以编辑所有元素 如果说集合中没有key对应的value,那么就往集合中添加元素 如果说集合中对应的key有value值,则代表替换原有的值 2.放回替换前key对应的value值

    entrySet : 由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系。 Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value (我们总说键值对键值对, 每一个键值对也就是一个Entry) Map.Entry里面包含getKey()和getValue()方法

    keySet : 通过entrySet,效率高,以后尽量使用这种方式 通过ketSet,效率低

    Map集合和Collection集合的区别

    (一)Map集合是有Key和Value的,Collection集合是只有Value。 (二)Collection集合底层也是有Key和Value,只是隐藏起来。 (三)Map特点:元素按键值对存储,无放入顺序 (四)Map不是Collection的接口 (五)Map接口有三个实现类:HashMap,HashTable,LinkeHashMap HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null SortedMap有一个实现类:TreeMap (六)map集合中的泛型要使用包装类,或者是引用数据类型

    TreeMap

    它的使用方法和我的上一篇set篇里的TreeSet一样,详情请看我的上一篇

    HashMap

    map集合中的泛型要使用包装类,或者是引用数据类型 统计、排序 统计功能 :

    小结:

    map Hashtable:底层是哈希表数据结构,不可以存入null键null值,该集合石线程同步的,jdk1.0,效率低

    HashMap:底层是哈希表数据结构,允许使用null值和null键,该集合是不同步的。将Hashtable替代;jdk1.2,效率高 TreeMap:底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序
    最新回复(0)