
集合
文章平均质量分 61
contact97
这个作者很懒,什么都没留下…
展开
-
集合学习3——LinkedList
LinkedList底层维护了一个双向链表。根据下图所知,LinkedList集合中有两个属性,first和last分别指向首节点和尾节点。每个节点对象(Node对象),里面又维护了prev、next、item三个属性,其中prev指向前一个节点,next指向后一个节点,最终实现双向链表。这样也意味着,LinkedList中的元素的增加与删除的效率高于ArrayList【底层通过数组结构实现】。仅仅只需要修改节点prev、next的指向即可。......原创 2022-06-18 17:32:29 · 213 阅读 · 0 评论 -
集合学习2——ArrayList的扩容机制
ArrayList是List接口的一个实现类,ArrayList中维护了一个Object类型的数组elementData。数据的存放就是放在这个elementData这个成员变量中。与数组存放指定长度的元素不同,elementData这个成员变量的长度是随着元素的存放动态地变化。该变化与ArrayList的初始构造方法有关。当创建ArrayList对象时,如果使用的是无参数构造器,如上图的ArrayList(),则初始elementData的容量为0。第一次添加元素时,则elementData为10。当原创 2022-06-18 11:08:25 · 279 阅读 · 0 评论 -
集合学习1——集合框架与Collection接口
集合分为两组:单列集合与双列集合Collection有两个重要的子接口List【有序型】,Set 【无序型】,它们的实现类就是单列集合Map接口的实现类如常见的Hashtable,HashMap这个K-V键值对型就是双列集合梳理出来的集合框架如下图所示,接口与实现类均在java.util包下:Collection接口的常用方法如下图所示:根据单列框架图所知Collection接口没有直接的实现类,只能通过子接口List,Set实现。为了演示Collection接口的常用方法,将用List的常用原创 2022-06-17 18:57:00 · 267 阅读 · 0 评论