All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ibm.icu.impl.Deque Maven / Gradle / Ivy

Go to download

International Component for Unicode for Java (ICU4J) is a mature, widely used Java library providing Unicode and Globalization support

There is a newer version: 76.1
Show newest version
/*
 *******************************************************************************
 * 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 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();
        }
        
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy