⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.java

📁 本程序可在局域网内实现聊天、传送文件功能
💻 JAVA
字号:
package org.tuna.net.rdt;

import java.util.*;

class Queue
{
	protected ArrayList<Object>  queue;
	protected Class elementClass;
	
	
	/**
	 * 构造一个空队列,并注册添加对象的类型
	 */
	public Queue(Class c)
	{
		queue = new ArrayList<Object>();
		elementClass = c;
	}
	
	
	// ------ Public Methods ------	
	/**
	 * 清空队列
	 */
	public boolean destroy()
	{
		int len = queue.size();		
		if (len == 0) 
		   return false;		
		for(int i = 0; i < len; i++)
		   queue.remove(0);		   
		return true;
	}
	
	/**
	 * 返回队首元素
	 */
	public Object front()
	{
		if (queue.size() == 0)
		   return null;
		else
		   return queue.get(0);
	}
	
	/**
	 * 入队列
	 */
	public boolean inQueue(Object in)
	{
		//传入类型不符
		if (!elementClass.getName().equals(in.getClass().getName())) 
		   return false;		
		queue.add(in);
		inQueueEvent();
		return true;
	}
	
	/**
	 * 入队列时所触发的事件
	 */
	public void inQueueEvent() {}
	
	/**
	 * 返回队列长度
	 */
	public int length()
	{
		return queue.size();
	}
		
	/**
	 * 出队列
	 */
	public boolean outQueue()
	{
		if (queue.size() > 0){
	    queue.remove(0);
	    outQueueEvent();
	    return true;
	  }
	  return false;
	}
	
	/**
	 * 出队列时所触发的事件
	 */
	public void outQueueEvent(){}
	
	
  // ------ Protected Methods ------
	/**
	 * 以数组形式返回队列中全部元素
	 */
  protected Object[] getAllElements()
  {
  	if (queue.size() == 0) 
  	   return null;
  	Object[] r = new Object[queue.size()];
  	for(int i = 0; i < queue.size(); i++)
  	   r[i] = queue.get(i); 	
  	return r;
  }
		
	/**
	 * 返回指定序号的元素,这里的序号是元素在队列中的序号
	 */
	protected Object getNumberedElement(int n)
	{
		if (n < 0 || n >= queue.size())
		   return null;
		return queue.get(n);
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -