利用ArrayList本身的特性来完成队列的相关操作

题目:一个基于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();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值