
function Buffer()
{
	this.keys = new Array();
	this.values = new Array();
}

Buffer.prototype.size = function ()
{
	return this.keys.length;
}

Buffer.prototype.clone = function (buffer)
{
	if (buffer == null)
		return;
	
	this.keys = new Array();
	this.values = new Array();

	for (var i = 0; i < buffer.size(); ++i)
	{
		this.keys.add(buffer.keys[i]);
		this.values.add(buffer.values[i]);
	}
};

Buffer.prototype.put = function (key, value)
{
	if (key == null || value == null)
		return;

	this.keys.add(key);
	this.values.add(value);
};

Buffer.prototype.get = function (key)
{
	if (key == null)
		return;

	for (var i = 0; i < this.keys.length; ++i)
	{
		if (key == this.keys[i])
		{
			return this.values[i];
		}
	}
};

Buffer.prototype.add = function (key)
{
	if (key == null)
		return;

	this.keys.add(key);
};

Buffer.prototype.clear = function ()
{
	this.keys.clear();
	this.values.clear();
};

Buffer.prototype.iterator = function ()
{
	var iter = new BufferIterator(this.keys);
	return iter;
};


// 迭代器
function BufferIterator(keys)
{
	this.keys = keys;
	this.count = 0;
}

BufferIterator.prototype.hasNext = function ()
{
	if (this.count < this.keys.size())
	{
		return true;
	}

	return false;
};

BufferIterator.prototype.next = function ()
{
	var value = this.keys[this.count++];
	return value;
};

