com.ibm.icu.impl.Deque Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of icu4j Show documentation
Show all versions of icu4j Show documentation
International Component for Unicode for Java (ICU4J) is a mature, widely used Java library
providing Unicode and Globalization support
/*
*******************************************************************************
* Copyright (C) 2014, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
package com.ibm.icu.impl;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;
import java.util.NoSuchElementException;
/**
* Thin wrapper of java.util.LinkedList implementing Java 6 Deque on
* Java 5 runtime environment. This class might be removed when the minimum
* Java runtime version is updated to 6 or later.
*/
public class Deque {
private LinkedList ll = new LinkedList();
public Deque() {
}
public boolean isEmpty() {
return ll.isEmpty();
}
public Object[] toArray() {
return ll.toArray();
}
public T[] toArray(T[] a) {
return ll.toArray(a);
}
public boolean containsAll(Collection> c) {
return ll.containsAll(c);
}
public boolean addAll(Collection extends E> c) {
return ll.addAll(c);
}
public boolean removeAll(Collection> c) {
return ll.removeAll(c);
}
public boolean retainAll(Collection> c) {
return ll.retainAll(c);
}
public void clear() {
ll.clear();
}
public void addFirst(E e) {
ll.addFirst(e);
}
public void addLast(E e) {
ll.addLast(e);
}
public boolean offerFirst(E e) {
ll.addFirst(e);
return true;
}
public boolean offerLast(E e) {
ll.addLast(e);
return true;
}
public E removeFirst() {
return ll.removeFirst();
}
public E removeLast() {
return ll.removeLast();
}
public E pollFirst() {
return ll.poll();
}
public E pollLast() {
E e;
try {
e = ll.removeLast();
} catch (NoSuchElementException ex) {
// ignore the exception and return null
e = null;
}
return e;
}
public E getFirst() {
return ll.getFirst();
}
public E getLast() {
return ll.getLast();
}
public E peekFirst() {
return ll.peek();
}
public E peekLast() {
E e;
try {
e = ll.getLast();
} catch (NoSuchElementException ex) {
// ignore the exception and return null
e = null;
}
return e;
}
public boolean removeFirstOccurrence(Object o) {
return ll.remove(o);
}
public boolean removeLastOccurrence(Object o) {
ListIterator litr = ll.listIterator(ll.size());
while (litr.hasPrevious()) {
E e = litr.previous();
if ((o == null && e == null) || (o != null && o.equals(e))) {
litr.remove();
return true;
}
}
return false;
}
public boolean add(E e) {
return ll.add(e);
}
public boolean offer(E e) {
return ll.offer(e);
}
public E remove() {
return ll.remove();
}
public E poll() {
return ll.poll();
}
public E element() {
return ll.element();
}
public E peek() {
return ll.peek();
}
public void push(E e) {
ll.addFirst(e);
}
public E pop() {
return ll.removeFirst();
}
public boolean remove(Object o) {
return ll.remove(o);
}
public boolean contains(Object o) {
return ll.contains(o);
}
public int size() {
return ll.size();
}
public Iterator iterator() {
return ll.iterator();
}
public Iterator descendingIterator() {
return new DescendingIterator();
}
private class DescendingIterator implements Iterator {
private ListIterator litr;
DescendingIterator() {
litr = ll.listIterator(ll.size());
}
/* (non-Javadoc)
* @see java.util.Iterator#hasNext()
*/
public boolean hasNext() {
return litr.hasPrevious();
}
/* (non-Javadoc)
* @see java.util.Iterator#next()
*/
public E next() {
return litr.previous();
}
/* (non-Javadoc)
* @see java.util.Iterator#remove()
*/
public void remove() {
litr.remove();
}
}
}