いいえ、ありませんし、あるべきでもありません!配列の先頭から削除することは、これを行うための不必要に費用のかかる方法です。
shift
次の要素(perl、bashなど)をデキュー する演算子を持つ多くのスクリプト言語を考えているかもしれません。
編集:後世のために、同じ機能を「偽造」する(つまりカーソルをカプセル化する)ことができる非常に単純なキューの実装を次に示します。
class ArrayQueue<E> extends AbstractQueue<E> {
private int cursor = 0;
private final E[] data;
public ArrayQueue(E[] data) {
this.data = data;
}
private boolean inRange() {
return cursor < data.length;
}
@Override
public E peek() {
return inRange() ? data[cursor] : null;
}
@Override
public E poll() {
return inRange() ? data[cursor++] : null;
}
@Override
public boolean offer(E e) {
throw new UnsupportedOperationException();
}
@Override
public void clear() {
cursor = data.length;
}
@Override
public Iterator<E> iterator() {
//ommitted for brevity
}
@Override
public int size() {
return data.length - cursor;
}
}
使用法:
public static void main(String[] args) throws Exception {
Queue<String> argQ = new ArrayQueue<String>(args);
String command = argQ.poll();
String target = argQ.poll();
}
警告:テストされていません