JAVA中集合的理解

首先看一个树状图:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
├HashSet
└TreesSet
└Queue

Map
├Hashtable
├HashMap
└WeakHashMap

在这里插入图片描述

图形:
在这里插入图片描述
继承: 实线
实现: 虚线

1 Collection

查看: https://blog.csdn.net/Judy_c/article/details/78230222
Collection是一个接口,是高度抽象出来的集合,它包含了集合的基本操作和属性。
Collection接口抽象出来了集合都具有的特性。例如添加、删除、得到集合中的元素个数、检测某一元素是否存在在该集合… …

Collection是一个接口 继承了 Iterable
首先查看Collection的源码以及方法:
在这里插入图片描述
在这里插入图片描述
然后查看了一下Collection的基类Iterable :
在这里插入图片描述
在这里插入图片描述

查看了上面的代码,当时就有一个疑问,为什么Collection接口又要去继承Iterable接口呢?
引用至: https://www.zhihu.com/question/48503724/answer/119178460
通过继承我们可以保留父接口中定义的行为,同时对其可以做扩展。
在这里插入图片描述
在这里插入图片描述

1.1 List

查看: https://blog.csdn.net/jack__frost/article/details/58072072

  1. 代表有序、重复的集合。
  2. 像一个数组,可以记住每次添加元素的顺序(要以对象的形式来理解),且长度是可变的。3.访问的时候根据元素的索引值来访问。

可以看到List同样继承了Collection
在这里插入图片描述
在这里插入图片描述

1.1.1 ArrayList

查看: https://blog.csdn.net/hehexiaoyou/article/details/23338101
https://blog.csdn.net/opensuns/article/details/82777473

在这里插入图片描述
ArrayList是一个大小可变的数组,但它在底层使用的是数组存储(也就是elementData变量),而且数组是定长的,要实现动态长度必然要进行长度的扩展。

    //添加单个元素
    public boolean add(E e) {
        //判断添加后的长度是否
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值