0
点赞
收藏
分享

微信扫一扫

Java SE入门及基础(50)& Java实现LinkedList(单向链表、双向链表)& Java实现栈

爱奔跑的读书者 2024-04-29 阅读 8

目录

List 接口

1. 特性描述

List 接口常用方法

2. ArrayList

示例及源码解读

3. LinkedList

示例及源码解读

单向链表

双向链表

4. 栈

练习

Java SE文章参考:Java SE入门及基础知识合集-CSDN博客

List 接口

1. 特性描述

List 接口常用方法

2. ArrayList

示例及源码解读

  • ArrayList 继承于 AbstractList AbstractList 继承于 AbstractColletion
  • ensureCapacityInternal(int minCapacity) 确保数组有足够的容量来存储新添加的数据
  • void grow(int minCapacity) 实现数组扩容,扩容至原来的1.5
  • ListItr 可以从前到后对集合进行遍历,也可以从后往前对集合进行遍历,还可以向集合中添加元素,修改元素。而 Itr 只能从前到后对集合进行遍历。

        ArrayList底层采用的是数组来存储元素,根据数组的特性, ArrayList 在随机访问时效率极高,在增加 和删除元素时效率偏低,因为在增加和删除元素时会涉及到数组中元素位置的移动。 ArrayList 在扩容 时每次扩容到原来的 1.5

3. LinkedList

示例及源码解读

单向链表

双向链表

  • LinkedList 继承于 AbstractSequentialList AbstractSequentialList 继承于 AbstractList , AbstractList 继承于 AbstractColletion
  • void addFirst(E e) 将数据存储在链表的头部
  • void addLast(E e) 将数据存储在链表的尾部
  • E removeFirst() 移除链表头部数据
  • E removeLast() 移除链表尾部数据

        LinkedList底层采用的是双向链表来存储数据,根据链表的特性可知, LinkedList 在增加和删除元素时 效率极高,只需要链之间进行衔接即可。在随机访问时效率较低,因为需要从链的一端遍历至链的另一 端。

4.

练习

        从控制台录入5 位学生信息:姓名,性别,年龄,成绩,并将这些学生信息以 "," 衔接起来,然后存储至文本中。然后再从文本中将这些信息读取至集合中。

Java SE文章参考:Java SE入门及基础知识合集-CSDN博客

举报

相关推荐

0 条评论