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

📄 idlist.java

📁 JAVA网络编程技术内幕一书的源代码
💻 JAVA
字号:
/* * 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -