Java基础学习摘要之Set集合和Map集合、遍历以及Collections工具类

Set集合:无序且唯一

分类:HashSet、LinkedHashSet、TreeSet

HashSet:保证元素唯一性

    保证唯一性的条件:
        靠元素重写hashCode()和equals()方法

LinkedHashSet:有序且唯一

    数据结构:
        链表:保证元素有序
        哈希表:保证元素唯一

TreeSet:元素唯一且可以对元素进行排序

    数据结构:二叉树
    排序方法:
            自然排序(空参构造):元素必须实现Compareble接口并且重写
        compareTO()方法 ,元素排序就是根据compareTO()方法的返回值
        的正负来决定排列顺序,返回0 元素不往里面存
            比较器排序(有参构造):传入一个comparetor比较器重写
        compare()方法

Map集合

    特点:将键映射到值的对象
        一个映射不能包含重复的键
        每个键最多只能映射到一个值

分类:HashMap、LinkedHashMap、TreeMap

Map集合的功能概述:

        public V put(K key, V value): 添加元素
        public void clear(): 删除所有元素
        public V remove(Object key):    根据键值删除对应的键值对元素
        public boolean containsKey(Object key): 判断集合是否包含指定的键
        public boolean containsValue(Object value):判断集合是否包含指定的值
        public boolean isEmpty():   判断集合是否为空
        public Set<Map.Entry<K,V>> entrySet():回一个键值对的Set类型的集合
        public V get(Object key): 根据键获取值
        public Set<K> keySet() : 返回集合中所有键的集合
        public Collection<V> values():  返回集合中所有值的集合
        public int size(): 键值对的对数

Map接口和Collection接口的区别:

    Map接口是双列接口,每个位置存出一对元素,数据结构只跟键有关
    Collection接口是单列接口,每个位置存储一个元素,数据结构跟元素有关

遍历方式:

    遍历方式1-----键找值
    遍历方式2------Entry 键值对 对象

HashMap:数据结构是哈希表,元素无序,键唯一 ,允许存储null值和null键 线程不安全效率高

LinkedHashMap:数据结构是链表和哈希表,元素有序且唯一 ,线程不安全效率高

HashMap和Hashtable的区别:

    HashMap:线程不安全, 效率高.允许null值和null键
    Hashtable:线程安全, 效率低.不允许null值和null键

TreeMap:数据结构是二叉树 可以对键排序,不允许null键 线程不安去效率高

Collections工具类

成员方法:
    public static <T> void sort(List<T> list) : 排序,默认自然排序
    public static <T> int binarySearch(List<?> list,T key):二分查找取最大值
    public static <T> T max(Collection<?> coll)     取最大值
    public static void reverse(List<?> list)        元素反转
    public static void shuffle(List<?> list)        打乱元素
    public static <T> void sort(List<T> list, Comparator<T> c)      根据比较器指定的排序对集合中的元素进行排序

Collection与Collections的区别:

    Collection接口为单列接口,包含常用方法
    Collections为集合工具类,包含获取集合最大元素值,集合排序等方法

猜你喜欢

转载自blog.csdn.net/Eternity_y/article/details/81482490