题目:一个基于ArrayList的类来实现队列的相关操作,包括判断队列元素是否为空、元素入队列、出队列、返回队列末端及顶端元素等操作。
第一次看到看到题目可能首先想到的就是与数据结构有关系,利用链表rear、front来实现功能。首先要了解:Java中的队列包括arraylist和链表,arraylist就可实现队列的功能。
队列的特点:先进先出
import java.util.ArrayList;
import java.util.Scanner;
public class StackOfIntegers {
static ArrayList<Integer> list = new ArrayList<>();
static Scanner input = new Scanner(System.in);
public static boolean JuageEmpty(ArrayList<Integer> list) {
//判断队列是否为空
System.out.println("返回列表是否包含元素(不包含元素:true;包含元素:false。):" + list.isEmpty());
System.out.println("当前队列为:" + list.toString());
return list.isEmpty();
}
public static void AddArray(ArrayList<Integer> list) {
//入队 指定位置
System.out.println("请输入要入队的数据:");
int number = input.nextInt();
// int location = input.nextInt();
list.add(number);
// if(number > list.size())
// System.out.printf("您输入的位置大于队列的长度,请重新输入!");
System.out.println("新队列为:" + list.toString());
}
public static void RemoveArray(ArrayList<Integer> list) {
//出队 去除指定下标位置的元素
System.out.println("请输入要出队的位置[0-" + (list.size() - 1) + "]:" );
int key = input.nextInt();
if(key > list.size() - 1)
System.out.println("你的输入有误,请重新输入!");
else {
for(int i = 0; i < key + 1; i++) {
list.remove(0);
if(list.size() == 0)
System.out.println("该队列已空!");
}
if(list.size() != 0) {
System.out.println("新队列为:" + list.toString());
IndexArray(list);
}
}
}
public static void IndexArray(ArrayList<Integer> list) {
//返回返回队列末端及顶端
System.out.println("请输入队列顶端或末端下标号:" + "(队列的末端编号为:" + ( list.size() - 1 ) + ")");
int index = input.nextInt();
System.out.println("返回到队列顶端或末端后:" + list.get(index));
}
@SuppressWarnings("unchecked")
public static void main(String[] args) {
// TODO Auto-generated method stub
@SuppressWarnings("rawtypes")
ArrayList arraylist = new ArrayList();
Scanner input = new Scanner(System.in);
arraylist.add("London");
arraylist.add("Denver");
arraylist.add("Paris");
arraylist.add("Miami");
arraylist.add("Seoul");
JuageEmpty(arraylist);
AddArray(arraylist);
RemoveArray(arraylist);
input.close();
}
}