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天前
|
缓存 负载均衡 安全
|
1天前
|
设计模式 算法 安全
Java编程中的设计模式:提升代码的可维护性和扩展性
【8月更文挑战第19天】在软件开发的世界里,设计模式是解决常见问题的一种优雅方式。本文将深入探讨Java编程语言中常用的几种设计模式,并解释如何通过这些模式来提高代码的可维护性和扩展性。文章不涉及具体的代码实现,而是侧重于理论和实践相结合的方式,为读者提供一种思考和改善现有项目的新视角。
|
1天前
|
安全 Java 测试技术
深入探讨Java安全编程的最佳实践,帮助开发者保障应用的安全性
在网络安全日益重要的今天,确保Java应用的安全性成为了开发者必须面对的课题。本文介绍Java安全编程的最佳实践,包括利用FindBugs等工具进行代码审查、严格验证用户输入以防攻击、运用输出编码避免XSS等漏洞、实施访问控制确保授权访问、采用加密技术保护敏感数据等。此外,还强调了使用最新Java版本、遵循最小权限原则及定期安全测试的重要性。通过这些实践,开发者能有效提升Java应用的安全防护水平。
5 1
|
1天前
|
Java 开发者
在Java编程中,if-else与switch作为核心的条件控制语句,各有千秋。if-else基于条件分支,适用于复杂逻辑;而switch则擅长处理枚举或固定选项列表,提供简洁高效的解决方案
在Java编程中,if-else与switch作为核心的条件控制语句,各有千秋。if-else基于条件分支,适用于复杂逻辑;而switch则擅长处理枚举或固定选项列表,提供简洁高效的解决方案。本文通过技术综述及示例代码,剖析两者在性能上的差异。if-else具有短路特性,但条件增多时JVM会优化提升性能;switch则利用跳转表机制,在处理大量固定选项时表现出色。通过实验对比可见,switch在重复case值处理上通常更快。尽管如此,选择时还需兼顾代码的可读性和维护性。理解这些细节有助于开发者编写出既高效又优雅的Java代码。
6 2
|
1天前
|
Java 开发者
在Java编程的广阔天地中,if-else与switch语句犹如两位老练的舵手,引领着代码的流向,决定着程序的走向。
在Java编程中,if-else与switch语句是条件判断的两大利器。本文通过丰富的示例,深入浅出地解析两者的特点与应用场景。if-else适用于逻辑复杂的判断,而switch则在处理固定选项或多分支选择时更为高效。从逻辑复杂度、可读性到性能考量,我们将帮助你掌握何时选用哪种语句,让你在编程时更加得心应手。无论面对何种挑战,都能找到最适合的解决方案。
6 1
|
1天前
|
搜索推荐 Java 程序员
在Java编程的旅程中,条件语句是每位开发者不可或缺的伙伴,它如同导航系统,引导着程序根据不同的情况做出响应。
在Java编程中,条件语句是引导程序根据不同情境作出响应的核心工具。本文通过四个案例深入浅出地介绍了如何巧妙运用if-else与switch语句。从基础的用户登录验证到利用switch处理枚举类型,再到条件语句的嵌套与组合,最后探讨了代码的优化与重构。每个案例都旨在帮助开发者提升编码效率与代码质量,无论是初学者还是资深程序员,都能从中获得灵感,让自己的Java代码更加优雅和专业。
5 1
|
1天前
|
Java
在Java编程的广阔天地中,条件语句是控制程序流程、实现逻辑判断的重要工具。
在Java编程中,if-else与switch作为核心条件语句,各具特色。if-else以其高度灵活性,适用于复杂逻辑判断,支持多种条件组合;而switch在多分支选择上表现优异,尤其适合处理枚举类型或固定选项集,通过内部跳转表提高执行效率。两者各有千秋:if-else擅长复杂逻辑,switch则在多分支选择中更胜一筹。理解它们的特点并在合适场景下使用,能够编写出更高效、易读的Java代码。
5 1
|
4天前
|
设计模式 算法 Java
Java编程中的设计模式:简化复杂性的艺术
在Java的世界中,设计模式如同一位智慧的导师,指引着开发者们在复杂的编码迷宫中找到出口。本文将深入浅出地探讨几种常见的设计模式,通过实例演示如何在Java项目实践中运用这些模式,从而提升代码的可维护性和扩展性。无论你是新手还是资深开发者,这篇文章都将为你打开一扇通往高效编码的大门。
12 1
|
1天前
|
安全 Java 程序员
阿里开发手册 嵩山版-编程规约 (四)OOP规约-Java程序员必看知识点!!!
《阿里开发手册 嵩山版》的OOP规约部分强调了面向对象编程的最佳实践,包括正确使用静态方法、覆写方法的注解、可变参数的使用、接口的稳定性、equals和compareTo方法的使用、BigDecimal的正确比较、包装类与基本数据类型选择、POJO类的属性和方法设计等,以提升代码的质量和维护性。
9 0
|
1天前
|
Java 程序员
"Java程序员必备秘籍:Lambda表达式如何让你的代码瘦身90%?揭秘简化编程的终极奥秘!"
【8月更文挑战第19天】Java持续进化,Lambda表达式自Java 8起赋予其新活力。它简化代码,使编程更愉悦。以前,简单功能需冗长代码,如列表排序要用匿名内部类实现`Comparator`。现在一行Lambda足矣。Lambda如`(参数) -&gt; {表达式}`,支持零或多参数。

热门文章

最新文章