`
小路青青0113
  • 浏览: 23363 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

数组与队列

阅读更多

 

数组与队列

一、数组

       在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];
    }
}

 

 

1
4
分享到:
评论
3 楼 beyondsoros_king 2012-07-18  
我觉得可以。挺不错的。
基础觉得上层建筑
2 楼 502220545 2012-07-05  
javasky00 写道
这种文章意义何在

用于自我学习
1 楼 javasky00 2012-07-05  
这种文章意义何在

相关推荐

    同步java之数组与队列

    为了实现队列操作,数组队列通常需要两个额外的变量来跟踪队头和队尾。添加元素时,如果队列已满,则需要进行扩容操作;移除元素时,如果队列为空,会抛出异常。这种基于数组的队列虽然在空间效率上比链表实现的队列...

    数组循环队列.rar

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

    【JavaScript源代码】Nodejs 数组的队列以及forEach的应用详解.docx

    ### 数组与队列 在JavaScript中,数组天生支持队列的操作。`push`方法用于在数组末尾添加元素,而`shift`方法则用于移除并返回数组的第一个元素。以下是一个简单的队列实现示例: ```javascript let queue = []; ...

    数组实现队列

    由数组实现队列,包括队列的创建、入队和出队。通过打印显示出队的结果。正在学习数据结构的童鞋可以参考。

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

    在Java中,我们可以使用数组来实现优先队列。这篇文章将探讨如何利用数组实现优先队列,并通过提供的`PriorityQ.java`文件来深入理解其实现原理。 1. **优先队列基本概念** 优先队列是一种数据结构,它维护了一个...

    基于数组的队列

    本篇内容介绍了一种改进的基于数组实现的队列结构,特别之处在于引入了一个`tag`标记来优化队列的操作判断逻辑,使得队列在判空(判断是否为空)与判满(判断是否已满)时更加高效准确。这种实现方式相较于传统基于...

    同步队列-无锁队列-循环数组无锁队列.zip

    配套代码讲解:https://blog.csdn.net/songchuwang1868/article/details/90200251 ...同步队列-无锁队列-循环数组无锁队列 同步队列-无锁队列-循环数组无锁队列 同步队列-无锁队列-循环数组无锁队列

    循环数组实现队列

    循环数组实现队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。队列的操作受限制,和栈一样,它是一种操作受限制的线性表。进行插入操作的...

    数组和队列相互转化

    更好了解数组和队列在C++应用开发当中使用,明白C++的变量内存结构。

    用数组实现队列的基本功能

    通过不断地修改命名规范、程序逻辑等毛病 ,终于算完成了。这算是我第一个比较认真的小程序吧!仍需努力啊。

    数组和队列反转

    在编程领域,数组和队列是两种非常基础且重要的数据结构。数组提供了一种存储和访问固定数量元素的方式,而队列则是一种先进先出(FIFO)的数据结构,广泛应用于任务调度、缓存管理等领域。本文将深入探讨C#中的数组...

    数组队列实现

    学习数据结构过程中,亲自在VC++上编译通过的使用数组实现队列的源代码,与大家共享。

    循环数组实现队列.doc

    以下是一个使用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)》这篇博文,我们可以深入理解循环队列的工作原理以及其在实际编程中的应用。 循环队列是队列的一种变体,它巧妙地...

    Java版数据结构代码,栈,动态数组,队列,链表,二叉树

    本资源提供了Java实现的数据结构代码,包括栈、动态数组、队列、链表和二叉树,这些都是计算机科学中最基础且重要的数据结构。 1. **栈(Stack)**:栈是一种“后进先出”(LIFO)的数据结构,常用于表达式求值、...

    队列数组实现

    队列是一种线性数据结构,与栈不同的是,队列中的元素按照它们加入队列的顺序进行操作。队列有两个主要的操作:入队(enqueue)和出队(dequeue)。入队是在队列的一端添加元素,而出队是从另一端移除元素。队列的...

Global site tag (gtag.js) - Google Analytics