idlist.java

来自「java网络编程方面的源码,其中有一个整合的聊天室,比较不错,建议大家下载练习,」· Java 代码 · 共 99 行

JAVA
99
字号
/* * Java Network Programming, Second Edition * Merlin Hughes, Michael Shoffner, Derek Hamner * Manning Publications Company; ISBN 188477749X * * http://nitric.com/jnp/ * * Copyright (c) 1997-1999 Merlin Hughes, Michael Shoffner, Derek Hamner; * all rights reserved; see license.txt for details. */import java.io.*;
import java.util.*;

public class IDList implements Serializable {
  protected Vector ids, elements;
  
  public IDList () {
    ids = new Vector ();
    elements = new Vector ();
  }

  protected int id;
  
  public synchronized ID allocateID () {
    return new ID (id ++);
  }

  protected int updateCount;

  public int getUpdateCount () {
    return updateCount;
  }

  public synchronized boolean addElement (ID id, Object element) {
    if (ids.contains (id))
      return false;
    ids.addElement (id);
    elements.addElement (element);
    ++ updateCount;
    return true;
  }

  public synchronized boolean updateElement (ID oldID, ID id, Object element) {
    int index = ids.indexOf (oldID);
    if (index < 0)
      return false;
    ids.setElementAt (id, index);
    elements.setElementAt (element, index);
    ++ updateCount;
    return true;
  }

  public synchronized boolean replaceElement (ID oldID, ID id, Object element) {
    int index = ids.indexOf (oldID);
    if (index < 0)
      return false;
    ids.removeElementAt (index);
    elements.removeElementAt (index);
    ids.addElement (id);
    elements.addElement (element);
    ++ updateCount;
    return true;
  }

  public synchronized boolean removeElement (ID id) {
    int index = ids.indexOf (id);
    if (index < 0)
      return false;
    ids.removeElementAt (index);
    elements.removeElementAt (index);
    ++ updateCount;
    return true;
  }

  public synchronized ID getID (Object element) {
    int index = elements.indexOf (element);
    if (index < 0)
      return null;
    else
      return (ID) ids.elementAt (index);
  }

  public Enumeration getElements () {
    return ((Vector) elements.clone ()).elements ();
  }

  public synchronized Object clone () {
    try {
      IDList idList = (IDList) super.clone ();
      idList.ids = (Vector) ids.clone ();
      idList.elements = (Vector) elements.clone ();
      return idList;
    } catch (CloneNotSupportedException ignored) {
      return null;
    }
  }
}

⌨️ 快捷键说明

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