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

📄 freelist.java

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 JAVA
字号:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2001-2002 *      Sleepycat Software.  All rights reserved. * * $Id: FreeList.java,v 1.3 2002/08/09 01:56:09 bostic Exp $ */package com.sleepycat.db.rpcserver;import java.util.*;/** * Keep track of a list of objects by id with a free list. * Intentionally package-protected exposure. */class FreeList{	class FreeIndex {		int index;		FreeIndex(int index) { this.index = index; }		int getIndex() { return index; }	}	Vector items = new Vector();	FreeIndex free_head = null;	public synchronized int add(Object obj) {		int pos;		if (free_head == null) {			pos = items.size();			items.addElement(obj);			if (pos % 1000 == 0)				DbServer.err.println(this + " grew to size " + pos);		} else {			pos = free_head.getIndex();			free_head = (FreeIndex)items.elementAt(pos);			items.setElementAt(obj, pos);		}		return pos;	}	public synchronized void del(int pos) {		Object obj = items.elementAt(pos);		if (obj != null && obj instanceof FreeIndex)			throw new NoSuchElementException("index " + pos + " has already been freed");		items.setElementAt(free_head, pos);		free_head = new FreeIndex(pos);	}	public void del(Object obj) {		del(items.indexOf(obj));	}	public Object get(int pos) {		Object obj = items.elementAt(pos);		if (obj instanceof FreeIndex)			obj = null;		return obj;	}	public LocalIterator iterator() {		return new FreeListIterator();	}	/**	 * Iterator for a FreeList.  Note that this class doesn't implement	 * java.util.Iterator to maintain compatibility with Java 1.1	 * Intentionally package-protected exposure.	 */	class FreeListIterator implements LocalIterator {		int current;		FreeListIterator() { current = findNext(-1); }		private int findNext(int start) {			int next = start;			while (++next < items.size()) {				Object obj = items.elementAt(next);				if (obj == null || !(obj instanceof FreeIndex))					break;			}			return next;		}		public boolean hasNext() {			return (findNext(current) < items.size());		}		public Object next() {			current = findNext(current);			if (current == items.size())				throw new NoSuchElementException("enumerated past end of FreeList");			return items.elementAt(current);		}		public void remove() {			del(current);		}	}}

⌨️ 快捷键说明

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