我想在Blackberry应用程序中实现peek和remove方法,类似于Java的Queue.peek()和Queue.remove()。我有一个自定义队列实现,但是如何查看元素并从队列中删除元素?
请帮忙,
提前致谢。
答案 0 :(得分:4)
尝试使用Arrays类...如果你需要窥视,从Object数组中取出最后一个元素,删除只删除最后一个:
class Queue {
private Object[] mElements = new Object[] {};
public void enqueue(Object element) {
Arrays.insertAt(mElements, element, 0);
}
public Object dequeue() {
Object result = null;
if (null != mElements && 0 < mElements.length) {
result = mElements[mElements.length - 1];
Arrays.remove(mElements, result);
}
return result;
}
public Object peek() {
if (null != mElements && 0 < mElements.length)
return mElements[mElements.length - 1];
else
return null;
}
public void remove() {
if (null != mElements && 0 < mElements.length)
Arrays.remove(mElements, peek());
}
}
使用示例:
class Scr extends MainScreen {
public Scr() {
Queue queue = new Queue();
queue.enqueue(new String("3"));
queue.enqueue(new Boolean(true));
queue.enqueue(new Integer(1));
//see "3" in console
System.out.println(queue.peek());
//see "3" still there
System.out.println(queue.peek());
//remove "3"
queue.remove();
//see "true" in console
System.out.println(queue.peek());
//dequeue all elements
Object element = null;
while ((element = queue.dequeue()) != null) {
System.out.println(element.toString());
}
}
}
答案 1 :(得分:3)
你应该可以使用Vector来执行这些类型的操作 - firstElement()
来查看列表中的第一个,lastElement()
来查看最后一个,或{{{ 1}}查看两者之间的任何内容。然后使用elementAt()
删除元素。