基础自我总结

本文详细介绍了Java集合框架,包括ArrayList、LinkedList、HashMap、HashSet等容器的特性和实现原理,并探讨了IO流的基本概念、分类及常用流的用法,提供了面试题汇总和对Java NIO的理解。
摘要由CSDN通过智能技术生成

一、集合容器

    1、为什么需要容器?

    《thinking in java》书中说:“如果一个程序只包含固定数量的且生命周期都已知的对象,那么这是一个非常简单的数据。”但是事实上,我们平时接触的程序都不是如此简单的,很多程序都是在运行时才知道需要创建什么对象、创建多少对象,因此很可能我们需要在任意时刻任意位置创建任意数量的对象。因此,不能依靠创建命名的引用持有每一个对象,因为不确定性,我们必须要动态的创建对象,保存对象(其实是对象的引用)。

    2、集合框架图:

    è¿éåå¾çæè¿°

 

 

    3、具体框架内容分析:

        3.1:ArrayList

            3.1.1是顺序容器,底层通过数组实现,允许放入null值;grow()方法扩容,1.5倍扩容;

            3.1.2对于ArrayList而言,size(),isEmpty(),get(),set()方法的时间复杂度是常数时间,add()方法开销和插入的位置有关,addAll()方法开销和添加的元素数量成正比,其余方法都是线性时间完成。

            3.1.3 ArrayList删除目标索引位置,之后该位置是为null,还是后面补上;测试结果:后面元素补上!

        3.2LinkedList

            3.2.1实现了List接口,因此它也是一个顺序容器,但是同时也可以将其用作栈、队列或双端队列(实现了Deque接口)。LinkedList底层通过双向链表实现;

            3.2.2Node(item,next,prev);

            3.2.3LinkedList的first和last引用分别指向链表的第一个和最后一个元素,链表为空时,first和last指向null。

            3.3.4测试LinkedList删除目标索引位置,之后该位置是为null,还是后面补上;测试结果:后面元素补上!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值