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

📄 circqueue.java

📁 模拟留言簿的网络程序,请收下
💻 JAVA
字号:
/* 
 * 该类负责创建组件获取输入焦点的顺序列表
*/
class qElement
{
    Object element;
    qElement next;
    qElement prev;
    qElement(Object element,qElement tail,qElement head)
    {
        this.element=element;
        if(null != head && null != tail){
            prev=head;
            head.next=this;
            next=tail;
        }
        else{
            next=this;
            prev=this;
        }
    }
}
//创建顺序列表,处理列表中的qElement对象
public class circQueue
{
    qElement head=null;
    qElement tail=null;
    qElement current=null;
    int count=0;
    //向顺序列表中添加组件
    public synchronized void addElement(Object object)
    {
        current = new qElement(object,tail,head);
        if(null == tail) tail=current;
        head=current;
        tail.prev=current;
        count++;
    }
    //从顺序列表中去除组件
    public synchronized boolean removeElement(Object obj)
    {
        for(int i=0; i< count; i++){
            if(obj.equals(current.element)){
                if(count > 1){
                    current.prev.next=current.next;
                    current.next.prev=current.prev;
                    if(tail==current)
                        tail=current.next;
                    if(head==current)
                        head=current.prev;
                    count--;
                }
                else{
                    current=head=tail=null;
                    count=0;
                }
                resetQueue();
                return true;
            }
            getNext();
        }
        return false;
    }
    //返回顺序列表中的元素数量
    public int size()
    {
        return count;
    }
    //重新设置当前的列表顺序,并且返回列表中的第一个元素
    public  Object resetQueue()
    {
        current=tail;
        if(null == current) return null;
        else return current.element;
    }
    //返回当前所指向的元素
    public  Object getCurrent()
    {
        return current.element;
    }
    //在顺序列表中进行搜索,如果找到所要的元素,将其设置为当前元素
    public  void setCurrent(Object obj)
    {
        for(int i=0; i< count; i++){
            if(obj.equals(current.element))break;
            getNext();
        }
    }
    //在顺序列表中搜索对象,如果在列表中找到该对象,
    //则返回true,否则返回false
    public  boolean isElement(Object obj)
    {
        qElement cur = current;
        boolean retval = false;
        for(int i=0; i< count; i++){
            if(obj.equals(current.element)){
            	retval = true;
            	break;
            }
            getNext();
        }
        current=cur;
        return retval;
    }
    //在顺序列表中获取下一个组件对象
    public Object getNext()
    {
        current=current.next;
        return current.element;
    }
    //在顺序列表中获取前一个对象
    public Object getPrev()
    {
        current=current.prev;
        return current.element;
    }
}

⌨️ 快捷键说明

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