Java编程之LinkedList+Vector+Stack+Queue

简介: Vector类 1.java.util包 2.是ArrayList集合的早期版本 (StringBuffer早期 StringBuilder后来) Vector底层也是利用(动态)数组的形式存储 Vector是线程同步的(synchronized) 安全性高 效率低 3.扩容方式与ArrayList不同 默认是扩容2倍 可以通过构造方法创建对象时修改这一机制 4.构造方法 5.常用方法Stack类 栈 1.java.util包 2.构造方法只有一个无参数 3.除了继承自Vacton类

知识回顾

   集合

   集合是用来存储一组元素----容器   与数组类似

   数组创建后长度不可以再次改变  

   集合创建后长度是可以改变

   (数据结构 Array  Linked  Hash  Tree)

集合的分支体系

   Collection  Map

   以value形式存储  以key-value形式存储

   List     Set      Queue

   有序可重复    无序无重复 key无序无重复  value无序可以重复

java.util包

   ArrayList

   1.底层是利用(动态)数组形式实现 1.5

   2.ArrayList特点适合遍历轮询   不适合插入删除

   3.如何构建一个ArrayList对象

    无参数构造方法    带默认容量构造方法

   4.ArrayList中常用的方法

   增删改查    add(E e)  remove(index)  

   set(index value)  get(index)   size()

   类中其他常用的方法

   addAll并集   removeAll差集   ratainAll交集

   indexOf()  lastIndexOf()  contains()  List=subList()

   isEmpty()  clear()   ensureCapacity()  iterator();迭代器

   toArray(T[] x);  trimToSize();

   5.泛型

用来规定数据类型

注意:  泛型  造型

在类或接口描述的时候  可以使用某种符号来表示一个未知的类型

在类型使用的时候  需要一个具体类型来代替

注意:  泛型需要使用引用数据类型来代替

1.泛型类  2.泛型接口  3.泛型方法  4.方法参数泛型限制  

List

Vector类

   1.java.util包

   2.是ArrayList集合的早期版本 (StringBuffer早期  StringBuilder后来)

    Vector底层也是利用(动态)数组的形式存储

    Vector是线程同步的(synchronized)  安全性高  效率低

   3.扩容方式与ArrayList不同

    默认是扩容2倍   可以通过构造方法创建对象时修改这一机制

   4.构造方法

   5.常用方法

Stack类    栈

   1.java.util包

   2.构造方法只有一个无参数

   3.除了继承自Vacton类的方法外还有特殊的方法

    push(E e)将某一个元素压入栈顶(add())

    E = pop()将某一个元素从栈顶取出并删掉(E = remove())

    E = peek()查看栈顶的一个元素 不删除(get())

    boolean = empty()判断栈内元素是否为空(isEmpty())

    int = search()查找给定的元素在占中的位置(indexOf())

   4.中国象棋   悔棋

    栈中存储每一次操作的步骤

    撤销功能

Queue接口

   1.java.util  通常子类LinkedList   ArrayDeque

   2.通常无参数构造方法创建

   3.一般方法

add()

element()---->get()

remove()

boolean = offer(E e);//相当于add 不会抛出异常

E = peek();//相当于 element方法

E = poll();剪短//  相当于remove()

   4.双十一零点秒杀

所有进入秒杀系统的人存入队列

ArrayList

   LinkedList类

   1.java.util包 自己封装过LinkedBox   内部类Node<T>对象(节点 prev item next)

   2.底层使用双向链表的数据结构形式来存储

    适合于插入或删除  不适合遍历轮询

   3.构建对象

    无参数构造方法   带参数的构造方法(collection)

   4.常用的方法

    增删改查   add()  remove()  set()  get()  size() offer  poll   peek

    手册中提供的其他常用方法

    addAll   addFist   addLast()  clear()  contains()

    element()  getFirst()  getLast()  indexOf()  lastIndex()

    .....

   5.插入删除的特性是否像想的那样

    对比ArrayList  Linked

目录
相关文章
|
1月前
|
Java 数据库连接 API
2025 更新必看:Java 编程基础入门级超级完整版指南
本教程为2025更新版Java编程基础入门指南,涵盖开发环境搭建(SDKMAN!管理JDK、VS Code配置)、Java 17+新特性(文本块、Switch表达式增强、Record类)、面向对象编程(接口默认方法、抽象类与模板方法)、集合框架深度应用(Stream API高级操作、并发集合)、模式匹配与密封类等。还包括学生成绩管理系统实战项目,涉及Maven构建、Lombok简化代码、JDBC数据库操作及JavaFX界面开发。同时提供JUnit测试、日志框架使用技巧及进阶学习资源推荐,助你掌握Java核心技术并迈向高级开发。
146 5
|
2月前
|
JavaScript 前端开发 Java
Java 编程进阶实操中工具集整合组件封装方法与使用指南详解
本文详细介绍Hutool工具集和图书管理系统相关组件的封装方法及使用示例。通过通用工具类封装(如日期格式化、字符串处理、加密等)、数据库操作封装(结合Hutool DbUtil与MyBatis)、前端Vue组件封装(图书列表与借阅表单)以及后端服务层封装(业务逻辑实现与REST API设计),帮助开发者提升代码复用性与可维护性。同时,提供最佳实践建议,如单一职责原则、高内聚低耦合、参数配置化等,助力高效开发。适用于Java编程进阶学习与实际项目应用。
113 10
|
1月前
|
Oracle Java 关系型数据库
java 编程基础入门级超级完整版教程详解
这份文档是针对Java编程入门学习者的超级完整版教程,涵盖了从环境搭建到实际项目应用的全方位内容。首先介绍了Java的基本概念与开发环境配置方法,随后深入讲解了基础语法、控制流程、面向对象编程的核心思想,并配以具体代码示例。接着探讨了常用类库与API的应用,如字符串操作、集合框架及文件处理等。最后通过一个学生成绩管理系统的实例,帮助读者将理论知识应用于实践。此外,还提供了进阶学习建议,引导学员逐步掌握更复杂的Java技术。适合初学者系统性学习Java编程。资源地址:[点击访问](https://pan.quark.cn/s/14fcf913bae6)。
147 2
|
2月前
|
前端开发 Java 数据库连接
Java 编程进阶实操之工具集整合应用指南
本文聚焦Java编程进阶实操,涵盖并发编程、性能优化及数据库操作优化等核心知识点,并结合Hutool、Postman、Git等实用工具,提供从理论到实践的学习路径。通过小型图书管理系统实战项目,详细解析技术选型与实现步骤,助力开发者掌握Spring Boot、MyBatis等框架应用。同时展望Java新特性与技术趋势,为职业发展奠定基础。资源链接:[点此获取](https://pan.quark.cn/s/14fcf913bae6)。
67 1
|
2月前
|
Java 开发者
Java编程实用技巧:提升代码质量与开发效率
Java作为一门成熟且广泛应用的编程语言,掌握一些实用技巧可以显著提高开发效率和代码质量。以下是值得Java开发者掌握的实用技巧:
62 6
|
28天前
|
缓存 安全 算法
2025 年 Java 秋招面试必看 Java 并发编程面试题实操篇
Java并发编程是Java技术栈中非常重要的一部分,也是面试中的高频考点。本文从基础概念、关键机制、工具类、高级技术等多个方面进行了介绍,并提供了丰富的实操示例。希望通过本文的学习,你能够掌握Java并发编程的核心知识,在面试中取得好成绩。同时,在实际工作中,也能够运用这些知识设计和实现高效、稳定的并发系统。
42 0
|
28天前
|
存储 安全 Java
2025 年 Java 秋招面试必看的 Java 并发编程面试题汇总
文章摘要: 本文系统梳理Java并发编程核心知识点,助力2025年秋招面试。内容涵盖:1)基础概念,包括线程/进程区别、创建线程的3种方式(Thread/Runnable/Callable)、6种线程状态及转换;2)关键机制,对比sleep()与wait()的锁行为差异,解释start()而非run()启动线程的原因;3)工具类与典型应用场景。通过技术原理与代码示例结合的方式,帮助开发者深入理解并发模型、线程同步等核心问题,为高并发系统设计打下坚实基础。(150字)
70 0
|
1月前
|
人工智能 Java API
Java并发编程之Future与FutureTask
本文深入解析了Future接口及其实现类FutureTask的原理与使用。Future接口定义了获取任务结果、取消任务及查询任务状态的规范,而FutureTask作为其核心实现类,结合了Runnable与Future的功能。文章通过分析FutureTask的成员变量、状态流转、关键方法(如run、set、get、cancel等)的源码,展示了异步任务的执行与结果处理机制。最后,通过示例代码演示了FutureTask的简单用法,帮助读者更直观地理解其工作原理。适合希望深入了解Java异步编程机制的开发者阅读。
|
2月前
|
网络协议 Java 大数据
【高薪程序员必看】万字长文拆解Java并发编程!(1)
📌 核心痛点暴击:1️⃣ 面了8家都被问synchronized锁升级?一张图看懂偏向锁→重量级锁全过程!2️⃣ 线程池参数不会配?高并发场景下这些参数调优救了项目组命!3️⃣ volatile双重检测单例模式到底安不安全?99%人踩过的内存可见性大坑!💡 独家亮点抢先看:✅ 图解JVM内存模型(JMM)三大特性,看完再也不怕指令重排序✅ 手撕ReentrantLock源码,AQS队列同步器实现原理大揭秘✅ 全网最细线程状态转换图(附6种状态转换触发条件表)
58 0