zoukankan      html  css  js  c++  java
  • JAVA基础知识总结:十五

    一、Set接口
    Set集合不允许包含相同的元素,如果试图将两个相同的元素添加到一个集合中,使用add方法,添加失败,返回false
    1、HashSet
    HashSet是Set集合的一个实现类,大多数情况使用它

    特点:
    a,排重(相同的元素不能被重复添加)
    原理:如果两个对象的hashCode相同,并且通过equals方法比较返回的结果也是相同的,HashSet集合会认为这两个元素是同一个,集合中只会被添加一次
    b。无序的(元素的添加的顺序和底层存储的顺序不同,是随机的,是由一套算法决定的,每次的顺序很可能不一样)
    c.集合元素值可以是null
    d.底层存储采用的数据结构是哈希算法,具有很好的存取和查找功能
    原理:hashCode值决定了元素在内存中的存储地址,可以通过hashCode值就可以访问到集合的元素

    2.LinkedHashSet
    是hashSet的一个子类,使用和HashSet基本相同

    特点:
    a.排重的
    b。有序的(元素的添加顺序和底层的存储顺序相同)
    c。底层存储采用的数据结构是链表


    3.TreeSet
    是Set接口的一个实现类,同时也是SortedSet接口的唯一实现类,可以确保集合元素处于排序状态

    特点:
    a.排重的
    b.有序的
    c.底层存储采用的数据结构是二叉树(红黑树)(数据结构)


    排序方式:
    a。自然排序
    TreeSet会调用集合元素的compareTo()方法比较元素之间的大小关系,然后按照升序进行排序

    Java提供了一个Comparable接口,这个接口里有compareTo()方法,该方法返回一个整数。实现该接口的类必须重写compareTo()方法
    规则是:
    obj1 compareTo(obj2):
    0:相等
    正整数:obj1 > obj2
    负整数:obj1 < obj2

    Java中的一些常用类已经实现了Comparable接口,并重写了compareTo()方法,提供了比较大小的一套标准,Integer、Character(unicode编码)、Boolean(true > false),String(unicode编码),Date(后面的日期比前面的日期大)

    b.定制排序
    如果要实现降序排序,可以采用定制排序,主要需要实现一个Comparator接口,其中包含了一个compare()方法

    规则:
    int compare(obj1,obj2)
    0:相等
    正整数:obj1 > obj2
    负整数:obj1 < obj2


    二、Map接口
    Map同样是一个集合的接口,同样用来存储引用数据类型,变长的容器,主要用于保存具有映射关系的数据,Map中的元素是以键值对的形式存在的
    key:键
    value:值
    userName:zhangsan
    password:1243134


    key和value之间是单向的一对一的关系,可以通过指定的key就可以找到对应的value

    特点:
    a.Map中的元素是以键值对的形式存在的,一个键对应一个值,不允许只有键没有值,也不允许一个键对应多个值
    b.Map中的元素是按照键进行排重的,Map中的键不允许重复,如果添加相同的键,这时后添加的会覆盖原来的
    c。键和值都是引用数据类型
    d.键和值可以为null(针对部分)

    1.HashMap
    特点:
    a.无序的,
    b.底层存储采用的数据结构是哈希算法


    2.LinkedHashMap

    特点:
    a.有序的,
    b.底层存储采用的数据结构是链表

    3.Hashtable
    Hashtable和HashMap之间的关系就相当于是Vector和ArrayList之间的关系

    区别:
    a.在用法上和HashMap基本相同
    b.Hashtable是一个古老的Map实现类(JDK1.0开始就存在了)
    c。Hashtable是线程安全的,HashMap是不安全的,推荐使用HashMap、
    d.Hashtable的性能比HashMap的低
    e.Hashtable是不允许将null作为键和值的。如果试图将null添加到Hashtable中时,将引发NullPointerException,

    4.TreeMap
    TreeMap是Map集合的一个实现类,同时也是SortedMap的实现类

    特点:
    a.有序的
    b.底层存储采用的数据结构是二叉树(红黑树)


    TreeMap中的排序主要针对的是Key
    排序方式:自然排序和定制排序


    5.Map的遍历、

    a.增强for循环
    b迭代器Iterator
    c。entrySet

    三、Collections工具类(Arrays工具类)



    四。集合的总结

    1.是否排重
    XxxxxxList:不排重
    XxxxxxSet:排重
    XxxxxMap:按照键排重

    2.底层存储的数据结构
    ArrayList:数组结构
    HashXxxxx:哈希算法
    LinkedXxxx:链表
    TreeXxxx:二叉树(红黑树)

    3.是否有序
    HashXxxx:无序的
    LinkedHashXxxx:有序的

  • 相关阅读:
    2018/12/21 HDU-2077 汉诺塔IV(递归)
    2018-12-08 acm日常 HDU
    2018/12/12 acm日常 第二周 第六题
    git 添加远程分支,并可以code review.
    zookeeper数据迁移方法
    gem install nokogiri -v '1.6.6.2' 出错
    gem install json -v '1.8.2' error
    gem install bundle 安装失败
    全能型开源远程终端:MobaXterm
    如何写好 Git Commit 信息
  • 原文地址:https://www.cnblogs.com/lidar/p/7743257.html
Copyright © 2011-2022 走看看