`
Wang_Jianxin
  • 浏览: 13062 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java自定义队列

 
阅读更多
//泛型其实就可以理解为一个模板,至于我们制作模具是倒进去的是什么有我们自己决定。



public class MyList<E> {
                         //这是一个标志

创建一个Object数组
private Object[] array = new Object[0];

//队列的增加操作
public void add(E e){
//创建一个新Object数组用做交换的模具
Object[]  new_array = new Object[array.length+1];

//将原数组中的元素拷贝过来
for (int i=0;i<array.length;i++){
new_array[i] = array[i];
}
//将新元素添加到队列的最末尾
new_array[new_array.length-1] = e;
//指针重新指向
array = new_array;


}

//获得队列的长度
public int getlength(){
return array.length;
}

//队列的修改
public void modify(int index,E e){
array[index] = e;
}

//队列的查找
public E get(int index){
//注意要进行强制类型转换
return (E)(array[index]);
}



//删除操作                          
//要重点考虑数组存放数据的连续性

public void delete(int index){
Object[] new_array = new Object[array.length-1];

//将修改值之前的类容复制过去
for (int i=0;i<index;i++){
new_array[i] = array[i];
}
//将删除的元素值之后的部分拷贝过去
for (int i=index+1;i<array.length;i++){
new_array[i-1] = array[i];
}

//重新指向
array = new_array;
}

//插入新元素
public void insert(int index,E e){
//新建一个交换数组
Object[] new_array = new Object[array.length+1];

//将插入之前的部分拷贝到元素的数组当中
for (int i=0;i<index;i++){
new_array[i] = array[i];
}
//插入新的元素
new_array[index] = e;
//将老数组后面的元素拷过去
for (int i=index;i<array.length;i++){
new_array[i+1] = array[i];
}
array = new_array;
}
//查询数组当中已经存放的元素个数
public int real_length(){
int location = 0 ;
for (int i=0;i<array.length;i++){
if (array[i] == null){
location = i;
break;
}
}
return location;
}


}
分享到:
评论

相关推荐

    java 自定义Queue队列

    总的来说,自定义Java的Queue队列需要对数据结构有深入的理解,并根据具体的应用场景来设计和实现。这包括选择合适的基础数据结构(如ArrayList、LinkedList等),考虑性能和并发访问等因素,以及正确实现Queue接口...

    自定义队列,XML,文件夹

    本文将深入探讨Java中自定义队列的操作、XML文件的处理以及如何进行文件夹操作。 首先,让我们来讨论自定义队列。在计算机科学中,队列是一种先进先出(FIFO)的数据结构,它在Java中可以通过实现`java.util.Queue`...

    java自定义集合类

    以下是对"java自定义集合类"这一主题的详细解释。 首先,Java集合框架包括接口(如List、Set、Map)和实现这些接口的类(如ArrayList、HashSet、HashMap)。这些类提供了基础的数据结构和方法,如添加元素、删除...

    java双端队列的实现-Java实现自定义双端队列(链表和数组两种方式) 数组和链表.pdf

    Java 双端队列的实现 Java 中的双端队列(Deque)是一种特殊的队列,能够在队列的两端进行元素的添加和删除...Java 实现自定义双端队列可以通过链表和数组两种方式实现,双端队列可以充当单端队列,也可以用于充当栈。

    java自定义线程池应用

    ThreadPool 线程池类 DEFAULT_POOL_SIZE 默认线程池大小 threadPool 线程队列 ...poolSize 自定义线程池大小 通过构造启动该线程池,调用addTask 方法将task任务传入,线程池会自动分配线程去执行任务

    android自定义消息队列

    然而,为了实现自定义的消息队列,我们可能需要扩展这些组件,或者使用其他的并发控制结构,如Java的BlockingQueue。 BlockingQueue(阻塞队列)是一个并发容器,它在多线程环境中提供了高效的同步机制。在这个场景...

    优先队列-java可以选择属性和升序降序

    优先队列在Java编程中是一种特殊的数据结构,它遵循特定的出队顺序,通常是最小元素(最小优先队列)或最大元素(最大优先队列)先出队。这种数据结构在解决各种问题时非常有用,例如任务调度、事件驱动编程、搜索...

    用数组实现的优先队列(JAVA)

    - 构造函数:初始化空的优先队列,可能包括默认容量的构造函数和自定义容量的构造函数。 - 插入方法:如`add(int val)`,将元素插入到队列的末尾并调整堆。 - 删除方法:如`remove()`,删除并返回队首元素,然后...

    编写一个JAVA的队列类

    本文将详细介绍如何在Java中自定义一个队列类,并实现队列的基本操作。 #### 队列的基本操作 队列通常支持以下几种基本操作: 1. **enq(x)**:向队列插入一个值为`x`的元素; 2. **deq()**:从队列删除一个元素;...

    Java实现的线程池、消息队列功能

    在实际应用中,根据业务需求,我们可以自定义线程池配置,如设置合适的线程数量和队列大小,以优化系统的资源利用率和性能。同时,消息队列的使用可以改善系统的吞吐量和可靠性,提高系统的整体效率。 关于“工具”...

    优先队列算法实现(Java)

    综上所述,优先队列是算法设计中的重要工具,Java中的PriorityQueue类提供了方便的接口,但自定义实现有助于深入理解和优化。在实际应用中,理解其内部工作机制以及如何适配具体需求是非常关键的。通过阅读和分析...

    自定义实现Java线程池

    ### 自定义实现Java线程池 #### 一、概述 在深入探讨自定义Java线程池之前,我们先简要回顾一下线程池的基本概念及其重要性。线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动...

    用Java实现数据结构中的队列

    如果需要自定义队列行为,可以实现`Queue`接口。下面是一个简单的基于数组的队列实现: ```java import java.util.NoSuchElementException; public class MyQueue&lt;T&gt; { private T[] elements; private int ...

    BlockingQueue队列自定义超时时间取消线程池任务

    现在我们来详细讨论如何利用这些技术实现“BlockingQueue队列自定义超时时间取消线程池任务”。 首先,`BlockingQueue`是一个并发容器,它遵循先进先出(FIFO)原则,具有阻塞性质,当队列满时,生产者线程会被阻塞...

    Java Design Demo -简单的队列

    在IT领域,尤其是在Java编程中,队列是一种基础且重要的数据结构。队列遵循“先进先出”(First In First Out, FIFO)原则,它的主要功能是存储和管理元素序列,使得新添加的元素(入队)总是在序列末尾,而移除元素...

    Java自定义实现链队列详解

    Java自定义实现链队列是一种常见的数据结构操作,它基于链表来构建队列,从而避免了数组实现时可能出现的“假满”现象。队列遵循“先进先出”(FIFO)原则,即最先插入的元素将最先被删除。在Java中,`java.util....

    spring 整合activemq实现自定义动态消息队列

    本文档参考了纯粹的activemq java代码和百度上的demo,很简洁的实现了动态消息队列的生成和获取,但是没有自定义监听(当前项目不需要),本文档只有功能实现类 即业务层。若要调用和推送 则需要自己根据需求编写。...

    Java优先队列(PriorityQueue)示例Java

    Java的优先队列(PriorityQueue)是Java集合框架中一个重要的数据结构,它是一个基于堆实现的无界队列。优先队列中的元素按照优先级排序,最高的优先级元素总是在队列的头部。在Java中,PriorityQueue类位于`java....

    JAVA 自定义线程池的最大线程数设置方法

    JAVA 自定义线程池的最大线程数设置方法 JAVA 自定义线程池的最大线程数设置方法是指在创建线程池时,设置线程池的最大线程数,以确保线程池的高效运行。线程池的最大线程数设置方法主要取决于任务的类型,即CPU...

Global site tag (gtag.js) - Google Analytics