数组与队列

 

数组与队列

一、数组

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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值