从网上粘贴的结构图

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(): 删除当前元素
 
 
第一次发博客,还请各位大佬多多指点

Java集合框架个人学习笔记的更多相关文章

  1. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring框架的基本思想

    EJB的学习成本很高,开发效率却不高,需要编写很多重复的代码,这些问题阻止了EJB的继续发展.就在EJB技术止步不前的时候,Spring框架在合适的时机出现了,Spring框架和EJB不同,Sprin ...

  2. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:SSM(Spring+Spring MVC+MyBatis)框架整合搭建详细步骤

    因为 Spring MVC 是 Spring 框架中的一个子模块,所以 Spring 与 SpringMVC 之间不存在整合的问题.实际上,SSM 框架的整合只涉及 Spring 与 MyBatis ...

  3. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:SSH框架(Struts2+Spring+Hibernate)搭建整合详细步骤

    在实际项目的开发中,为了充分利用各个框架的优点,通常都会把 Spring 与其他框架整合在一起使用. 整合就是将不同的框架放在一个项目中,共同使用它们的技术,发挥它们的优点,并形成互补.一般而言,在进 ...

  4. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring JDBCTemplate简介

    Spring 框架针对数据库开发中的应用提供了 JDBCTemplate 类,该类是 Spring 对 JDBC 支持的核心,它提供了所有对数据库操作功能的支持. Spring 框架提供的JDBC支持 ...

  5. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring使用AspectJ开发AOP基于XML和基于Annotation

    AspectJ 是一个基于 Java 语言的 AOP 框架,它扩展了 Java 语言.Spring 2.0 以后,新增了对 AspectJ 方式的支持,新版本的 Spring 框架,建议使用 Aspe ...

  6. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring CGLlB动态代理

    JDK 动态代理使用起来非常简单,但是它也有一定的局限性,这是因为 JDK 动态代理必须要实现一个或多个接口,如果不希望实现接口,则可以使用 CGLIB 代理. CGLIB(Code Generati ...

  7. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring JDK动态代理

    JDK 动态代理是通过 JDK 中的 java.lang.reflect.Proxy 类实现的.下面通过具体的案例演示 JDK 动态代理的使用. 1. 创建项目 在 MyEclipse 中创建一个名称 ...

  8. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring AOP(面向切面编程)

    面向切面编程(AOP)和面向对象编程(OOP)类似,也是一种编程模式.Spring AOP 是基于 AOP 编程模式的一个框架,它的使用有效减少了系统间的重复代码,达到了模块间的松耦合目的. AOP ...

  9. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring DI(依赖注入)的实现方式属性注入和构造注入

    依赖注入(Dependency Injection,DI)和控制反转含义相同,它们是从两个角度描述的同一个概念. 当某个 Java 实例需要另一个 Java 实例时,传统的方法是由调用者创建被调用者的 ...

随机推荐

  1. 编程范式 --- 函数式编程(Funtional Programming,简称FP)

    函数式编程(Funtional Programming,简称FP)是一种编程范式,也就是如何编写程序的方法论 主要思想:把计算过程尽量分解成一系列可复用函数的调用 主要特征:函数是"第一等公 ...

  2. mybatis 配置之<typeAliases>别名配置元素设置

    一.方式一:使用typeAlias <typeAliases> <typeAlias alias="User" type="com.**.entity. ...

  3. java几个常见的基础错误

    1.String 相等 稍微有点经验的程序员都会用equals比较而不是用 ==,但用equals就真的安全了吗,看下面的代码 user.getName().equals("xiaoming ...

  4. python爬虫——京东评论、jieba分词、wordcloud词云统计

    接上一章,动态页面抓取——抓取京东评论区内容. url=‘https://club.jd.com/comment/productPageComments.action?callback=fetchJS ...

  5. Spark 学习笔记之 MONGODB SPARK CONNECTOR 插入性能测试

    MONGODB SPARK CONNECTOR 测试数据量: 测试结果: 116万数据通过4个表的join,从SQL Server查出,耗时1分多.MongoSparkConnector插入平均耗时: ...

  6. JAVA错误提示:The operation is not applicable to the current selection.Select a field which is not declared as type variable or a type that declares such fields.

    平时没怎么注意,今天用Eclipse自动生成Set Get方法时提示错误,错误信息如下: The operation is not applicable to the current selectio ...

  7. Flutter学习笔记(29)--Flutter如何与native进行通信

    如需转载,请注明出处:Flutter学习笔记(29)--Flutter如何与native进行通信 前言:在我们开发Flutter项目的时候,难免会遇到需要调用native api或者是其他的情况,这时 ...

  8. hihoCode 1075 : 开锁魔法III

    时间限制:6000ms 单点时限:1000ms 内存限制:256MB 描述 一日,崔克茜来到小马镇表演魔法. 其中有一个节目是开锁咒:舞台上有 n 个盒子,每个盒子中有一把钥匙,对于每个盒子而言有且仅 ...

  9. Web安全之url跳转漏洞及bypass总结

    0x01 成因 对于URL跳转的实现一般会有几种实现方式: META标签内跳转 javascript跳转 header头跳转 通过以GET或者POST的方式接收将要跳转的URL,然后通过上面的几种方式 ...

  10. 渗透测试-基于白名单执行payload--Pcalua

    0x01 Pcalua简介 Windows进程兼容性助理(Program Compatibility Assistant)的一个组件. 说明:Pcalua.exe所在路径已被系统添加PATH环境变量中 ...