? ? ? ? 队列之于数组,就如同一系列大小不一的瓶子之于某个特定的水瓶。
? ? ? ? 现在有人给了我们一些水,为了不浪费空间,我们要选一个适当大小的瓶子来装,这时我们又得了另外一些水,那为了把水都装在一个瓶子里,就要选一个再大些的瓶子,先把原来的水倒进去,再把新到的水装进去,这样就完成了转化。
? ? ? ? ?第一次装水的瓶子就相当于数组,而最终装下所有水的则为队列。
?
数组是可以这样定义的:
class="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; } }
队列不仅可以增加元素,还可以删除元素(指定下标或指定值)、插入元素、修改某一元素等。
?
这就是队列了,其实它就是伪装之后的数组。
?
?
?
?
?
?
?
?
?
?
?
?