数组与队列
一、数组
在java中数组是常用的数据类型,它不属于基本数据类型而是属于引用数据类型。
数组是一个容器,可以存放东西。
特点:1、数组一旦定义,数组长度就不可改变。
2、只能存储一种类型的数据
3、它是有序的
4、存储空间是连续的、线性的
数组的定义: (前两种最常用)
1) 数据类型[] 数组名 = new 数据类型[长度];
2) 数据类型[] 数组名 = {值,...};
3) 数据类型[] 数组名;
数组名= new 数据类型[长度];
4) 数据类型[] 数组名;
数组名= new 数据类型[]{值,...};
二维数组的定义与一维数组相似。
取得数组长度可通过 数组名.length 得到;
取得某一位置的值可通过 数组名[索引值] 得到;
在数组使用中常见的错误是ArrayIndexOutOfBoundsException,即数组越界。
数组常用来排序。常见的排序方法有冒泡排序,选择排序,插入排序,希尔排序等。最简单的冒泡排序如下:
public class MaoPao {
public static void main(String[] args){
int[] array = new int[]{66,42,54,36,97,43,7,74,28,2};
maopao(array);
}
public static void maopao(int[] array){
int temp;
for(int j=0;j<array.length-1;j++){
for(int i=0;i<array.length-j-1;i++){
if(array[i]>array[i+1]){
temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
}
}
}
for(int i=0;i<array.length;i++){
System.out.print(array[i]+"\t");
}
}
}
二、队列
数组的长度在定义时就已经确定不可更改,但是在实际中很多时候对于数组中要存放的数据的个数是不确定的,如果用数组来存放,在定义时会遇到麻烦。这时我们就要用到队列。
队列和数组一样有序的存放对象,但是他可以自动增减。其实队列就是不同长度的数组不断取代旧数组的结果。
队列中常用的方法有加入新元素,移除元素,获得队列长度,得到某一位置的值。简单介绍如下:
public class MyQueue {
int i;
//创建一个数组
Object[] abc = new Object[0];
//在队尾加入一个元素
public void add(Object o){
//创建一个数组,数组长度是数组abc的长度加一
Object[] def = new Object[abc.length+1];
//将abc数组中的数据复制到def中
for(i=0;i<abc.length;i++){
def[i] = abc[i];
}
//将新加入的元素放到队尾
def[i] = o;
//新数组取代旧数组
abc = def;
}
//得到数组的长度
public int size(){
return abc.length;
}
//得到index位置的元素并返回
public Object get(int index){
return abc[index];
}
}
分享到:
相关推荐
为了实现队列操作,数组队列通常需要两个额外的变量来跟踪队头和队尾。添加元素时,如果队列已满,则需要进行扩容操作;移除元素时,如果队列为空,会抛出异常。这种基于数组的队列虽然在空间效率上比链表实现的队列...
在普通数组队列中,一旦队列满或空,需要进行数组的重新分配,而循环队列则避免了这个过程,提升了性能。 在编程语言中,如C、C++、Java或Python,我们可以用不同的方式实现数组循环队列。例如,在C++中,可以定义...
### 数组与队列 在JavaScript中,数组天生支持队列的操作。`push`方法用于在数组末尾添加元素,而`shift`方法则用于移除并返回数组的第一个元素。以下是一个简单的队列实现示例: ```javascript let queue = []; ...
由数组实现队列,包括队列的创建、入队和出队。通过打印显示出队的结果。正在学习数据结构的童鞋可以参考。
在Java中,我们可以使用数组来实现优先队列。这篇文章将探讨如何利用数组实现优先队列,并通过提供的`PriorityQ.java`文件来深入理解其实现原理。 1. **优先队列基本概念** 优先队列是一种数据结构,它维护了一个...
本篇内容介绍了一种改进的基于数组实现的队列结构,特别之处在于引入了一个`tag`标记来优化队列的操作判断逻辑,使得队列在判空(判断是否为空)与判满(判断是否已满)时更加高效准确。这种实现方式相较于传统基于...
配套代码讲解:https://blog.csdn.net/songchuwang1868/article/details/90200251 ...同步队列-无锁队列-循环数组无锁队列 同步队列-无锁队列-循环数组无锁队列 同步队列-无锁队列-循环数组无锁队列
循环数组实现队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。队列的操作受限制,和栈一样,它是一种操作受限制的线性表。进行插入操作的...
更好了解数组和队列在C++应用开发当中使用,明白C++的变量内存结构。
通过不断地修改命名规范、程序逻辑等毛病 ,终于算完成了。这算是我第一个比较认真的小程序吧!仍需努力啊。
在编程领域,数组和队列是两种非常基础且重要的数据结构。数组提供了一种存储和访问固定数量元素的方式,而队列则是一种先进先出(FIFO)的数据结构,广泛应用于任务调度、缓存管理等领域。本文将深入探讨C#中的数组...
学习数据结构过程中,亲自在VC++上编译通过的使用数组实现队列的源代码,与大家共享。
以下是一个使用C++模板类实现的循环数组队列: ```cpp template class MyQueue { private: struct myq { int head, rear; T* ele; }; myq* q; const int Max; public: // 构造函数 MyQueue() { q = new ...
java数组实现循环队列。包括入队, 出队,输出队列。 队列先入先出。
本话题主要探讨了两种常用的数据结构——数组和链表——在实现队列这一线性数据结构时的应用。队列是一种先进先出(First In First Out, FIFO)的数据结构,它的主要操作包括入队(enqueue)、出队(dequeue)以及...
数组、栈和队列是数据结构中最基本的线性结构,它们在编程和算法设计中有着广泛的应用。 一、数组 数组是一种最简单且最常用的数据结构,它将具有相同类型的一组数据元素存储在一个连续的内存空间中。数组分为一维...
普通队列 1)将尾指针往后移:rear+1,当front==rear【空】 2)若尾指针rear小于队列的最大下标maxSize-1,则将数据存入rear所指的数中组元素中,否则无法存入数据。rear==maxSize-1[队列满] 环形队列 1)front变量的...
本篇文章将探讨如何在Java中使用数组实现一个循环队列,通过阅读《用数组实现的循环队列(java)》这篇博文,我们可以深入理解循环队列的工作原理以及其在实际编程中的应用。 循环队列是队列的一种变体,它巧妙地...
本资源提供了Java实现的数据结构代码,包括栈、动态数组、队列、链表和二叉树,这些都是计算机科学中最基础且重要的数据结构。 1. **栈(Stack)**:栈是一种“后进先出”(LIFO)的数据结构,常用于表达式求值、...
队列是一种线性数据结构,与栈不同的是,队列中的元素按照它们加入队列的顺序进行操作。队列有两个主要的操作:入队(enqueue)和出队(dequeue)。入队是在队列的一端添加元素,而出队是从另一端移除元素。队列的...