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

目录
相关文章
|
Java API 微服务
为什么虚拟线程将改变Java并发编程?
为什么虚拟线程将改变Java并发编程?
507 83
|
10月前
|
Java
如何在Java中进行多线程编程
Java多线程编程常用方式包括:继承Thread类、实现Runnable接口、Callable接口(可返回结果)及使用线程池。推荐线程池以提升性能,避免频繁创建线程。结合同步与通信机制,可有效管理并发任务。
336 6
|
10月前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
466 1
|
11月前
|
SQL Java 数据库
2025 年 Java 从零基础小白到编程高手的详细学习路线攻略
2025年Java学习路线涵盖基础语法、面向对象、数据库、JavaWeb、Spring全家桶、分布式、云原生与高并发技术,结合实战项目与源码分析,助力零基础学员系统掌握Java开发技能,从入门到精通,全面提升竞争力,顺利进阶编程高手。
1436 2
|
10月前
|
安全 前端开发 Java
从反射到方法句柄:深入探索Java动态编程的终极解决方案
从反射到方法句柄,Java 动态编程不断演进。方法句柄以强类型、低开销、易优化的特性,解决反射性能差、类型弱、安全性低等问题,结合 `invokedynamic` 成为支撑 Lambda 与动态语言的终极方案。
359 0
|
12月前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
1260 3
|
11月前
|
Java 开发者
Java并发编程:CountDownLatch实战解析
Java并发编程:CountDownLatch实战解析
636 100
|
11月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
625 16
|
11月前
|
NoSQL Java 关系型数据库
超全 Java 学习路线,帮你系统掌握编程的超详细 Java 学习路线
本文为超全Java学习路线,涵盖基础语法、面向对象编程、数据结构与算法、多线程、JVM原理、主流框架(如Spring Boot)、数据库(MySQL、Redis)及项目实战等内容,助力从零基础到企业级开发高手的进阶之路。
673 1