美文网首页
数组队列

数组队列

作者: 蛤星人丨冬马和纱 | 来源:发表于2017-07-18 12:22 被阅读0次

1.数组有什么优点和缺点?

优点:

存取数据是所有数据结构中速度最快的一种,你在获取或设置数据时,

可以直接通过下标定位。

缺点:

如果你要存储的数据不确定时,数组在创建时需要给予的长度就是缺点。

1.创建数组小了,存储不下数据

2.创建数组大了,浪费内存空间

如果在项目中特定情况下只能存储一种数据类型;在项目的两一个位置

需要存储N种数据类型;这样数组在创建时需要指定固定的类型就会是缺点。

2.数组队列的实现

数组队列的实现原理:借助于数组名中存储的是数组对象在内存中的首地址。

interface MyArrayList.java 父接口,定义数组中所需要实现的方法

class MyArrayListImpl.java 子类,实现接口中所有的抽象方法。

使用泛型来解决第二个问题。

泛型是Java中的一种特殊符号,不能把它当做任何一个种数据类型。

但是它可以泛指Java所有的数据类型(基本数据类型,引用类型)。

Java中的泛型有E(元素)、K(键)、V(值)。

public class MyArrayListImplimplements MyArrayList{

// 声明一个数组名

private Object[] array;

// 声明一个记录存储元素总数的属性名

private int size;

/**

* 构造方法

*/

public MyArrayListImpl() {

array = new Object[1];

}

// public MyArrayListImpl(int i){

// array = new String[i];

// }

/**

* 添加元素到数组队列中的方法

*

* @param e要添加的元素

*/

public void add(E e) {

if (size == 0)

array[0] = e;

else {

// 根据所添加元素的的个数来创建新的数组,新数组的长度是size+1

Object[] newArray = new Object[size + 1];

// 将新元素str添加到newArray数组的末尾

newArray[size] = e;

// 将原始数组中的数据存入到新数组中

for (int i = 0; i < size; i++) {

newArray[i] = array[i];

}

// 新数组的地址赋给原始数组

array = newArray;

}

// 记录元素总数增加1.

size++;

}

/**

* 向数组队列中指定的位置插入一个新的元素

*

* @param index要插入元素的所在的索引位置

* @param e要插入的新元素

* @return 返回true表示插入成功,返回false表示插入失败

*/

public boolean add(int index, E e) {

return false;

}

/**

* 根据指定的索引位置,从数组队列中移除一个元素

*

* @param index要移除元素所在的索引位置

* @return 返回null表示移除失败,否则会返回移除的元素

*/

public E remove(int index) {

return null;

}

/**

* 移除指定的元素

*

* @param e要移除的元素

* @return 返回值true表示执行成功,返回false表示执行失败

*/

public boolean remove(E e) {

return false;

}

public boolean removeAll(E e) {

return false;

}

/**

* 修改指定索引位置的元素

*

* @param index要修改元素的位置

* @param e新的元素

* @return 返回值true表示执行成功,返回false表示执行失败

*/

public boolean update(int index, E e) {

return false;

}

/**

* 修改指定元素的内容

*

* @param oldE要修改的元素

* @param e新的元素

* @return 返回值true表示执行成功,返回false表示执行失败

*/

public boolean update(E oldE, E e) {

return false;

}

/**

* 获取数组队列中存储的元素总数

*

* @return 返回数组队列中存储的元素总数属性

*/

public int size() {

return size;

}

/**

* 获取指定索引位置的元素

*

* @param index要获取元素的索引位置

* @return 返回null表示获取失败,否则会返回获取到的元素

*/

public E get(int index) {

if (index < 0 || index >= size)

return null;

return (E)array[index];

}

}

相关文章

  • 1.数组队列

    数组实现单队列 数组实现循环队列

  • 数据结构之队列

    什么是队列 队列是一个有序列表, 可以用数组或链表实现 先入先出 使用数组模拟队列和环形队列 用数组模拟队列 思路...

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • Java数组实现循环队列

    Java数组实现循环队列 上一节(Java实现队列——顺序队列、链式队列)我们使用数组实现了顺序队列,但是在tai...

  • ArrayList源码分析

    ArrayList JDK1.8 概述 ArrayList 数组队列,跟普通的数组相比,数组队列的容量能动态增长。...

  • jQuery动画队列

    队列 队列的本质是一个数组,对队列的理解先从数组的push和shift开始。push是从数组尾端插入新的元素,sh...

  • 动画队列

    队列 队列的本质是一个数组,对队列的理解先从数组的push和shift开始。push是从数组尾端插入新的元素,sh...

  • HDUOJ-1026 Ignatius and the Prin

    解题思路 广搜 使用队列来模拟广搜 数组模拟队列 使用1维数组来模拟队列,head为当前队列头,tail-1为当前...

  • Java基础面试题

    如何用数组实现队列? 用数组实现队列时要注意 溢出 现象,这时我们可以采用循环数组的方式来解决,即将数组收尾相接。...

  • 队列

    队列特性 对比队列和栈 基于数组的队列 对比队列学习循环队列 循环队列难点 阻塞队列 并发队列 应用:线程池中拒绝...

网友评论

      本文标题:数组队列

      本文链接:https://www.haomeiwen.com/subject/hiackxtx.html