赞
踩
数组:
1.储存规定长度并且需要存入数据为相同类型。
2.格式为 数据类型[] 数组名 = new 数据类型[]{内容};
例如: 整形数组
int[] S = new int[]{1,2,3};
字符串数组
String[] S = new String[]{“a”,“b”,“c”};
可以不填入内容,在[]写入数字n,那么便创建了一个长度为n的内容是"空"的数列。
3.数组具有连续性,无法直接用本体数组来实现增添删除操作。
4.数组里的内容可以重复,无影响。
队列
格式:Queue queue = new LinkedList<类型>();
许多地方都会说队列先进先出,无长度限制,这实际是JAVA中原Queue里的方法造成的结果,我们也能够自己写入方法,来模拟、改变原JAVA中队列的规则。
自定义队列思路
根本:运用数组来实现规则。
这里的示范,我只让队列存入String类型的数据,数组用String类型来定义。以下图片中的数字代表下标,a表示数据。
1.首先需要一个存有运算规则的类,新建一个MyQueue.java
public class MyQueue {
//首先创建一个用来存数据的数组
private String[] text = new String[0];
//下面编写运算方法
}
即可。
2.(写入MyQueue类中)实现添加的功能,运用两个数组进行操作,创建一个比上一个数组长度多1的新数组,将原来数组拥有的数据复制过来,并加入新的数据,最后新数组覆盖掉原数组即可。这里模拟队列,只添加在最后一位。
//添加(到数组最后) public void add(String a) { //创建一个新数组,比第一个数组长度多1 String[] Ntext = new String[text.length+1]; //将原数组的数据复制给新数组 for(int i=0;i<text.length;i++) { Ntext[i] = text[i]; } //将加入的数据放到新数组的最后一位 Ntext[Ntext.length-1] = a; //将地址指向新的数组,可以理解为把新数组的数据赋值给原来的数组 text = Ntext;
3.实现获取数据功能。
//从队列中取出一个
public String get(int index) {
//运用下标来返回数组中的值
String a = text[index];
return a;
}
4.实现返回长度的功能。
//队列的长度
public int size() {
return text.length;
}
5.实现删除功能。模拟队列删除最后一个,只需复制原数组的最后一个数据之前的数据,给新数组即可。
//去除最后一个
public void cutlist(){
//当队列长度为0时
if(text.length == 0) {
System.out.println("长度为0,无法删除");
}
//创建一个新数组,比第一个数组长度少1
else {
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。