• Java面试系列07(集合)


    集合只能存放引用数据类型的数据。

    集合分类:

    集合的从属关系:

    两类集合Collection、Map

    Collection包括List、Set

    List包括:VectorArrayListLinkedList

    Set包括:HashSetTreeSetLinkedHashSet

    Map包括:HashMapTreeMapHashTable

    ArrayList和Vector的底层是相同的,Vector是线程安全的、ArrayList是线程不安全的。

    HashMap是线程不安全的、HashTable是线程安全的。(结构相同)

    HashSet的底层使用的是HashMap,且其Value都是同一个Object对象。

    Hashmap底层结构是一个数组链表式结构,

    第一层是一个长度为6的数组,数组的每个元素是一个链表。

    链表的节点是node(实现了entry的一个类。entry在map中被定义为内部接口)

    向hashmap里插入元素的过程

    首先第一步是计算K对象的Hashcode值,通过hashcode%数组长度取模运算,得到此hashcode值对应的数组下标。

    然后从第一个节点开始与K比较hashcode值,如果hashcode值相同再执行equeals方法。如果equals方法返回true,则对相应节点的valude进行覆盖,如果不为真则继续比较下一个节点,直到相同。如果最后都不相同则会在尾部插入此KV node。

    hashset中存入的值就是每一个node 的K。它的底层是hashmap,所以都是相同的,不同的也是在map的基础上又改了改。

    排序  TreeMap、TreeSet

     第一种方法在TreeMap的构造方法中传入Compartor接口的匿名对象。

    new  TreeMap(new Compartor<String>{ 实现compare<String>方法 })  

    第二种方法是使元素对象实现Comparable接口实现CompareTo方法

    这两个方法,都会返回整数,大于0的表示新插入的比旧的大,

    TreeMap是升序的。

    三种遍历list集合的方式

    iterator

    三个方法hasnext next remove

    高级for

    通过获取size来用for遍历。

    两种遍历set的方式

    keyset()+iterator

    keyset()+for

    三种遍历map

    map.entryset()+for

    keyset()+iterator

    keyset()+for

  • 相关阅读:
    Sitecore安全:访问权限
    Sitecore 8.2 防火墙规则的权威指南
    Sitecore 8.2 安全性第2部分:安全性编辑器和Access Viewer
    Sitecore安全性第1部分:自定义角色和权限
    Sitecore 8.2 Admin用户帐户解锁
    Sitecore 8.2 数据库权限设置
    cesium 结合 geoserver 实现地图属性查询(附源码下载)
    Vue&Cesium&Ribbon界面: 将桌面GIS搬进浏览器
    leaflet图斑历史时空播放(附源码下载)
    openlayers6结合geoserver实现地图属性查询(附源码下载)
  • 原文地址:https://www.cnblogs.com/mcmx/p/11341405.html
Copyright © 2020-2023  润新知