数组与队列
一、数组
在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];
}
}