`
ShXin
  • 浏览: 12939 次
  • 性别: Icon_minigender_2
  • 来自: 天津
社区版块
存档分类
最新评论

同步java之数组与队列

阅读更多

        队列之于数组,就如同一系列大小不一的瓶子之于某个特定的水瓶。

        现在有人给了我们一些水,为了不浪费空间,我们要选一个适当大小的瓶子来装,这时我们又得了另外一些水,那为了把水都装在一个瓶子里,就要选一个再大些的瓶子,先把原来的水倒进去,再把新到的水装进去,这样就完成了转化。

         第一次装水的瓶子就相当于数组,而最终装下所有水的则为队列。

 

数组是可以这样定义的:

int t[] = new int[10];
		
int[] t1 = new int[]{1,2,3,4,5,6,7};
		
int t2[] = {1,2,3,4,5,6,7};
		
String s[] = {"AAA","BBB","CCC"};

 [注]:数组的长度是固定的,所以在定义时必须确定长度。

 

再来看一下如何写一个队列,也就是一个不确定长度的数组:

public class MyArray {
	
	//定义一个长度为0的初始数组
	String[] src = new String[0];
	
	//将s放入初始数组
	public void add(String s){
		
                //定义新数组,长度是原始数组长度+1
		String[] temp = new String[src.length+1];
		
		//将原数组中的数据按下标顺序拷贝到新数组
		for(int i=0;i<src.length;i++){
			temp[i]=src[i];
		}

		//将新元素放到新数组最后一个下标位置
		temp[src.length] = s;

		//将新数组赋给原数组
		src = temp;	
	}
}

队列不仅可以增加元素,还可以删除元素(指定下标或指定值)、插入元素、修改某一元素等。

 

这就是队列了,其实它就是伪装之后的数组。

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    数组循环队列.rar

    在普通数组队列中,一旦队列满或空,需要进行数组的重新分配,而循环队列则避免了这个过程,提升了性能。 在编程语言中,如C、C++、Java或Python,我们可以用不同的方式实现数组循环队列。例如,在C++中,可以定义...

    java队列实现(顺序队列、链式队列、循环队列)

    在Java中,可以使用数组配合索引来模拟循环队列。需要注意的是,循环队列需要处理两种特殊状态:空队列和满队列。判断队列是否为空,通常看队首和队尾是否指向同一位置;判断队列是否已满,需要考虑数组大小和队列...

    java模拟阻塞队列

    阻塞队列结合了队列的数据结构与线程同步机制,使得生产者可以在队列满时被阻塞,而消费者则在队列空时被阻塞,这样可以避免无效的循环检查,提高程序的运行效率。 首先,我们需要了解什么是生产者-消费者模型。在...

    java数组-基于java实现的环形缓冲数组.zip

    环形缓冲数组的设计灵感来自于环形队列,它提供了一种在有限空间内循环存放元素的方式,具有先进先出(FIFO)的特性。 环形缓冲数组的基本概念是数组的首尾相连,形成一个闭合的环。当数组填满时,新的元素会覆盖旧...

    基于 Java 实现的队列和堆栈

    - **并发访问**:在多线程环境下,如果需要多个线程同时访问队列或堆栈,可能需要使用线程安全的数据结构或进行同步控制,如`ConcurrentLinkedQueue`或`ArrayBlockingQueue`。 - **性能考虑**:根据需求选择合适的...

    java-Using-Array-for-Queue.zip_java队列实现

    在Java编程中,队列是一种线性数据结构,它遵循先进先出...在实际项目中,应根据需求选择合适的数据结构,例如,如果性能是关键,那么自定义的数组队列可能更有优势;如果需要线程安全,`Vector`则是一个不错的选择。

    顺序队列实现源码(C、C++、Java)

    在Java中实现顺序队列,可以继承`AbstractQueue`或实现`Queue`接口,定义一个内部数组存储元素,并提供相应的添加、删除和查询方法。Java的自动内存管理使得开发者无需关注内存分配和释放,但需要注意并发环境下同步...

    java并发工具包 java.util.concurrent中文版用户指南pdf

    3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 PriorityBlockingQueue 7. 同步队列 SynchronousQueue 8. 阻塞双端队列 BlockingDeque 9. ...

    基于java数据结构实验 队列实验报告.pdf

    在本实验报告中,我们关注的是Java编程语言中关于数据结构——队列的实现。队列是一种线性数据结构,遵循“先进先出”(FIFO)的原则,即最早进入队列的元素最先离开。实验的目标是掌握顺序队列和顺序循环队列的基本...

    java队列Java系列2021.pdf

    Java中的队列是一种数据结构,遵循“先入先出”(FIFO)的原则,主要用于实现生产者消费者模式。队列在并发编程中的应用尤为广泛,因为在多线程环境下,多个生产者或消费者可能同时对队列进行操作,因此线程安全的...

    java并发工具包详解

    3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 PriorityBlockingQueue 7. 同步队列 Synchronou sQueue 8. 阻塞双端队列 BlockingDeque 9...

    Java并发工具包java.util.concurrent用户指南中英文对照阅读版.pdf

    数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 PriorityBlockingQueue 7. 同步队列 SynchronousQueue 8. 阻塞双端队列 BlockingDeque 9. 链...

    阻塞队列实现生产者消费者模式Java开发Java经验技巧共

    7. **集成 RocketMQ**:考虑到标签中有"rocketmqjava项目集成",可能还会介绍如何将阻塞队列与RocketMQ消息队列结合使用,提升系统的异步处理能力。 在实际的Java项目中,尤其是大型分布式系统中,阻塞队列是实现...

    一个小的java Demo , 非常适合Java初学者学习阅读.rar

    数组阻塞队列ArrayBlockingQueue,延迟队列DelayQueue, 链阻塞队列 LinkedBlockingQueue,具有优先级的阻塞队列 PriorityBlockingQueue, 同步队列 SynchronousQueue,阻塞双端队列 BlockingDeque, 链阻塞双端队列 ...

    java-leetcode题解之第622题设计循环队列.zip

    在本压缩包中,我们关注的是Java编程语言与LeetCode平台上的第622题——设计循环队列。循环队列是一种数据结构,它在数组或链表的基础上实现了队列的特点,同时通过巧妙的设计使得“出队”和“入队”的操作更为高效...

    java基础数据结构-队列

    #### 一、队列的概念与特性 队列是一种特殊类型的线性表,它的特点是先进先出(FIFO,First In First Out)。我们可以将其想象成现实生活中的排队情景,比如排队购买火车票时,最早到达的人会最先得到服务,而最后...

    Java队列源码-article-building-queue:文章“在C++和Java之间建立快速队列”的源代码

    通过JNI,可以实现Java队列对象与C++队列数据结构之间的映射,从而进行跨语言的数据交换。 5. **性能优化**: 当涉及到跨语言的队列操作时,性能优化至关重要。这可能包括减少不必要的数据转换,利用高效的缓存...

    Java中的阻塞队列详细介绍

    Java中的阻塞队列是一种特殊的队列数据结构,它在多线程环境下广泛应用于生产者-消费者模式。阻塞队列的主要特点在于当队列为空时,试图从中取出元素的消费者线程会被阻塞,直到有其他生产者线程添加元素;同样,当...

    Java中使用阻塞队列控制线程集实例

    2. **ArrayBlockingQueue**:基于数组,有界队列,构造时需指定容量,插入和删除操作为O(1),但可能会涉及数组的扩容或缩容操作。 3. **PriorityBlockingQueue**:无界队列,元素按优先级排序,插入和删除操作为O...

Global site tag (gtag.js) - Google Analytics