zoukankan      html  css  js  c++  java
  • Java集合框架个人学习笔记 小小少年

    从网上粘贴的结构图

    Collection
    ├List
    │├LinkedList
    │├ArrayList
    │└Vector(了解,已过时)
    │ └Stack
    └Set
      
    Map
    ├Hashtable(了解,已过时)
    ├HashMap
    ├ConcurrentHashMap
    └WeakHashMap
     
    collection接口是集合的根接口,list和set都继承collection;
    list是有序的,允许存放重复的元素
    HashSet是无序的,不允许存放重复元素
    TreeSet是有序的(二叉树排序),不允许存放重复元素
    HashMap是无序的,key不允许重复,value可以重复
    TreeMap是有序的(二叉树排序),key不允许重复,value可以重复
     
     
    ArrayList:
      ArrayList底层是数组,ArrayList并不是线程安全的
      1.ArrayList默认有三个构造函数:
          第一个是空参构造函数,默认初始化长度是10;
          第二个是带参构造,入参size是多少,就初始化多少;
          第三个是collection类型的参数,如果入参size>0,那就调用Arrays.copyOf,否则的话,就赋值为空数组
     
      2.ArrayList.contains()方法
        底层是使用indexOf()方法,将当前list转换为数组,遍历数组,在第几位匹配到,就返回当前下标,在遍历之前,会区分是NULL还是正常的字符
     
    LinkedList:
       底层是双向链表,Node节点,每个节点都有前面节点的指针和后面节点的指针
     
    HashSet:
      HashSet的底层使用的是HashMap;HashSet添加的值都保存在hashMap的key上,value是定义的一个static变量 private static final Object PRESENT = new Object()  HashSet的构造函数有两个,无参和带参
      HashSet.add()方法调用的是hashMap.put()
     
     
     
    HashMap的初始化容量是16,负载因子是0.75
    .
    ConcurrentHashMap:
      concurrentHashMap采用了segment分段锁的机制,每个segment就相当于一个hashTabe,HashTable是把锁所有数据,concurrentHashMap是锁一部分数据,这样多线程访问的时候,就不会出现阻塞,concurrentHasMap最大并发访问量是16
     
     
     
     iterator: 所有的集合类,都实现了Iterator接口,主要用于遍历集合中的元素,有以下三个方法:
       >. hasNext():是否还有下一个元素
       >. next():返回下一个元素
       >. remove(): 删除当前元素
     
     
    第一次发博客,还请各位大佬多多指点
  • 相关阅读:
    fielddata breaker与cache size
    safepoint与UseCountedLoopSafepoints
    怎样提高ES集群的稳定性?
    节点回来shard仍然delayed原因
    201521123122《Java程序设计》第1周学习总结
    201521123121 《Java程序设计》第2周学习总结
    201521123121 《Java程序设计》第1周学习总结
    201521123118《java程序设计》第一周学习总结
    201521123117 《Java程序设计》第1周学习总结
    201521123115 《Java程序设计》第1周学习总结
  • 原文地址:https://www.cnblogs.com/mpyn/p/10461969.html
Copyright © 2011-2022 走看看