📄 idlist.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 + -