libjava/classpath/ChangeLog.gcj:
2007-05-31 Matthias Klose <doko@ubuntu.com> * javax/management/NotificationBroadcasterSupport.java (getNotificationInfo): Add cast. * native/jni/qt-peer/Makefile.am (AM_CXXFLAGS): Add libstdc++ include directories. * native/jni/qt-peer/Makefile.in: Regenerate. libjava/ChangeLog: 2007-06-03 Matthias Klose <doko@ubuntu.com> * java/io/natFileWin32.cc (setFilePermissions): New (stub only). _access: Handle EXEC query, stub only. 2007-06-03 Matthias Klose <doko@ubuntu.com> Merged from classpath: * gnu/java/nio/SelectorProviderImpl.java: Whitespace merge. * java/lang/System.java(inheritedChannel): New. * java/lang/Character.java: Remove stray`;'. * java/net/MulticastSocket.java: Merged. * java/text/DateFormatSymbols.java(getInstance): New, comment updates. * java/text/Collator.java(getInstance): Merged. * java/util/Calendar.java: New attributes ALL_STYLES, SHORT, LONG. getDisplayName, getDisplayNames: New. * java/util/logging/Logger.java: Merged. * Regenerate .class and .h files. 2007-06-03 Matthias Klose <doko@ubuntu.com> * java/io/File.java: Merge with classpath-0.95, new method setFilePermissions, new attribute EXEC. * java/io/natFilePosix.cc (setFilePermissions): New. _access: Handle EXEC query. * classpath/lib/java/io/File.class, java/io/File.h: Regenerate. 2007-06-03 Matthias Klose <doko@ubuntu.com> Imported GNU Classpath 0.95. * classpath/Makefile.in, classpath/native/jni/midi-dssi/Makefile.in, classpath/native/jni/classpath/Makefile.in, classpath/native/jni/Makefile.in, classpath/native/jni/gconf-peer/Makefile.in, classpath/native/jni/java-io/Makefile.in, classpath/native/jni/native-lib/Makefile.in, classpath/native/jni/java-util/Makefile.in, classpath/native/jni/midi-alsa/Makefile.in, classpath/native/jni/java-lang/Makefile.in, classpath/native/jni/java-nio/Makefile.in, classpath/native/jni/java-net/Makefile.in, classpath/native/jni/xmlj/Makefile.in, classpath/native/jni/qt-peer/Makefile.in, classpath/native/jni/gtk-peer/Makefile.in, classpath/native/Makefile.in, classpath/native/jawt/Makefile.in, classpath/native/fdlibm/Makefile.in, classpath/native/plugin/Makefile.in, classpath/resource/Makefile.in, classpath/scripts/Makefile.in, classpath/tools/Makefile.in, classpath/doc/Makefile.in, classpath/doc/api/Makefile.in, classpath/lib/Makefile.in, classpath/external/Makefile.in, classpath/external/jsr166/Makefile.in, classpath/external/sax/Makefile.in, classpath/external/w3c_dom/Makefile.in, classpath/external/relaxngDatatype/Makefile.in, classpath/include/Makefile.in, classpath/examples/Makefile.in: Regenerate. * classpath/config.guess, classpath/config.sub, classpath/ltmain.sh : Update. * classpath/configure, classpath/depcomp, classpath/missing, classpath/aclocal.m4, classpath/install-sh: Regenerate. * gnu/classpath/Configuration.java (CLASSPATH_VERSION): Now 0.95. * sources.am: Regenerate. * Makefile.in: Regenerate. * Update the .class files and generated CNI header files, add new .class and generated CNI header files. * Remove generated files for removed java source files: classpath/gnu/java/net/BASE64.java, classpath/gnu/java/security/util/Base64.java, classpath/gnu/java/awt/peer/gtk/GThreadMutex.java, classpath/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java, classpath/gnu/java/awt/font/autofit/Scaler.java, classpath/gnu/classpath/jdwp/util/Value.java, classpath/gnu/javax/net/ssl/Base64.java. * Remove empty directories. * Makefile.am(nat_source_files): Add natVMOperatingSystemMXBeanImpl.cc. * java/lang/Class.java(setAccessible): Merge from classpath. * java/util/Locale.java: Remove. * gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java, gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc: New. * gcj/javaprims.h: Update class declarations. * scripts/classes.pl: Update usage. * HACKING: Mention to build all peers. From-SVN: r125302
This commit is contained in:
parent
af333b9a7f
commit
e1bea0c068
2951 changed files with 80982 additions and 68583 deletions
|
@ -1,5 +1,5 @@
|
|||
/* LinkedList.java -- Linked list implementation of the List interface
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
|
@ -64,15 +64,17 @@ import java.lang.reflect.Array;
|
|||
* @author Original author unknown
|
||||
* @author Bryce McKinlay
|
||||
* @author Eric Blake (ebb9@email.byu.edu)
|
||||
* @author Tom Tromey (tromey@redhat.com)
|
||||
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
|
||||
* @see List
|
||||
* @see ArrayList
|
||||
* @see Vector
|
||||
* @see Collections#synchronizedList(List)
|
||||
* @since 1.2
|
||||
* @status missing javadoc, but complete to 1.4
|
||||
* @status Complete to 1.6
|
||||
*/
|
||||
public class LinkedList<T> extends AbstractSequentialList<T>
|
||||
implements List<T>, Queue<T>, Cloneable, Serializable
|
||||
implements List<T>, Deque<T>, Cloneable, Serializable
|
||||
{
|
||||
/**
|
||||
* Compatible with JDK 1.2.
|
||||
|
@ -708,6 +710,10 @@ public class LinkedList<T> extends AbstractSequentialList<T>
|
|||
}
|
||||
|
||||
/**
|
||||
* Adds the specified element to the end of the list.
|
||||
*
|
||||
* @param value the value to add.
|
||||
* @return true.
|
||||
* @since 1.5
|
||||
*/
|
||||
public boolean offer(T value)
|
||||
|
@ -716,6 +722,11 @@ public class LinkedList<T> extends AbstractSequentialList<T>
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the first element of the list without removing
|
||||
* it.
|
||||
*
|
||||
* @return the first element of the list.
|
||||
* @throws NoSuchElementException if the list is empty.
|
||||
* @since 1.5
|
||||
*/
|
||||
public T element()
|
||||
|
@ -724,6 +735,11 @@ public class LinkedList<T> extends AbstractSequentialList<T>
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the first element of the list without removing
|
||||
* it.
|
||||
*
|
||||
* @return the first element of the list, or <code>null</code>
|
||||
* if the list is empty.
|
||||
* @since 1.5
|
||||
*/
|
||||
public T peek()
|
||||
|
@ -734,6 +750,10 @@ public class LinkedList<T> extends AbstractSequentialList<T>
|
|||
}
|
||||
|
||||
/**
|
||||
* Removes and returns the first element of the list.
|
||||
*
|
||||
* @return the first element of the list, or <code>null</code>
|
||||
* if the list is empty.
|
||||
* @since 1.5
|
||||
*/
|
||||
public T poll()
|
||||
|
@ -744,6 +764,10 @@ public class LinkedList<T> extends AbstractSequentialList<T>
|
|||
}
|
||||
|
||||
/**
|
||||
* Removes and returns the first element of the list.
|
||||
*
|
||||
* @return the first element of the list.
|
||||
* @throws NoSuchElementException if the list is empty.
|
||||
* @since 1.5
|
||||
*/
|
||||
public T remove()
|
||||
|
@ -992,4 +1016,245 @@ public class LinkedList<T> extends AbstractSequentialList<T>
|
|||
lastReturned.data = o;
|
||||
}
|
||||
} // class LinkedListItr
|
||||
|
||||
/**
|
||||
* Obtain an Iterator over this list in reverse sequential order.
|
||||
*
|
||||
* @return an Iterator over the elements of the list in
|
||||
* reverse order.
|
||||
* @since 1.6
|
||||
*/
|
||||
public Iterator<T> descendingIterator()
|
||||
{
|
||||
return new Iterator<T>()
|
||||
{
|
||||
/** Number of modifications we know about. */
|
||||
private int knownMod = modCount;
|
||||
|
||||
/** Entry that will be returned by next(). */
|
||||
private Entry<T> next = last;
|
||||
|
||||
/** Entry that will be affected by remove() or set(). */
|
||||
private Entry<T> lastReturned;
|
||||
|
||||
/** Index of `next'. */
|
||||
private int position = size() - 1;
|
||||
|
||||
// This will get inlined, since it is private.
|
||||
/**
|
||||
* Checks for modifications made to the list from
|
||||
* elsewhere while iteration is in progress.
|
||||
*
|
||||
* @throws ConcurrentModificationException if the
|
||||
* list has been modified elsewhere.
|
||||
*/
|
||||
private void checkMod()
|
||||
{
|
||||
if (knownMod != modCount)
|
||||
throw new ConcurrentModificationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests to see if there are any more objects to
|
||||
* return.
|
||||
*
|
||||
* @return true if the start of the list has not yet been
|
||||
* reached.
|
||||
*/
|
||||
public boolean hasNext()
|
||||
{
|
||||
return next != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the next object from the list.
|
||||
*
|
||||
* @return The next object.
|
||||
* @throws NoSuchElementException if there are
|
||||
* no more objects to retrieve.
|
||||
* @throws ConcurrentModificationException if the
|
||||
* list has been modified elsewhere.
|
||||
*/
|
||||
public T next()
|
||||
{
|
||||
checkMod();
|
||||
if (next == null)
|
||||
throw new NoSuchElementException();
|
||||
--position;
|
||||
lastReturned = next;
|
||||
next = lastReturned.previous;
|
||||
return lastReturned.data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the last object retrieved by <code>next()</code>
|
||||
* from the list, if the list supports object removal.
|
||||
*
|
||||
* @throws ConcurrentModificationException if the list
|
||||
* has been modified elsewhere.
|
||||
* @throws IllegalStateException if the iterator is positioned
|
||||
* before the start of the list or the last object has already
|
||||
* been removed.
|
||||
*/
|
||||
public void remove()
|
||||
{
|
||||
checkMod();
|
||||
if (lastReturned == null)
|
||||
throw new IllegalStateException();
|
||||
removeEntry(lastReturned);
|
||||
lastReturned = null;
|
||||
++knownMod;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts the specified element at the front of the list.
|
||||
*
|
||||
* @param value the element to insert.
|
||||
* @return true.
|
||||
* @since 1.6
|
||||
*/
|
||||
public boolean offerFirst(T value)
|
||||
{
|
||||
addFirst(value);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts the specified element at the end of the list.
|
||||
*
|
||||
* @param value the element to insert.
|
||||
* @return true.
|
||||
* @since 1.6
|
||||
*/
|
||||
public boolean offerLast(T value)
|
||||
{
|
||||
return add(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the first element of the list without removing
|
||||
* it.
|
||||
*
|
||||
* @return the first element of the list, or <code>null</code>
|
||||
* if the list is empty.
|
||||
* @since 1.6
|
||||
*/
|
||||
public T peekFirst()
|
||||
{
|
||||
return peek();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the last element of the list without removing
|
||||
* it.
|
||||
*
|
||||
* @return the last element of the list, or <code>null</code>
|
||||
* if the list is empty.
|
||||
* @since 1.6
|
||||
*/
|
||||
public T peekLast()
|
||||
{
|
||||
if (size == 0)
|
||||
return null;
|
||||
return getLast();
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes and returns the first element of the list.
|
||||
*
|
||||
* @return the first element of the list, or <code>null</code>
|
||||
* if the list is empty.
|
||||
* @since 1.6
|
||||
*/
|
||||
public T pollFirst()
|
||||
{
|
||||
return poll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes and returns the last element of the list.
|
||||
*
|
||||
* @return the last element of the list, or <code>null</code>
|
||||
* if the list is empty.
|
||||
* @since 1.6
|
||||
*/
|
||||
public T pollLast()
|
||||
{
|
||||
if (size == 0)
|
||||
return null;
|
||||
return removeLast();
|
||||
}
|
||||
|
||||
/**
|
||||
* Pops an element from the stack by removing and returning
|
||||
* the first element in the list. This is equivalent to
|
||||
* calling {@link #removeFirst()}.
|
||||
*
|
||||
* @return the top of the stack, which is the first element
|
||||
* of the list.
|
||||
* @throws NoSuchElementException if the list is empty.
|
||||
* @since 1.6
|
||||
* @see #removeFirst()
|
||||
*/
|
||||
public T pop()
|
||||
{
|
||||
return removeFirst();
|
||||
}
|
||||
|
||||
/**
|
||||
* Pushes an element on to the stack by adding it to the
|
||||
* front of the list. This is equivalent to calling
|
||||
* {@link #addFirst(T)}.
|
||||
*
|
||||
* @param value the element to push on to the stack.
|
||||
* @throws NoSuchElementException if the list is empty.
|
||||
* @since 1.6
|
||||
* @see #addFirst(T)
|
||||
*/
|
||||
public void push(T value)
|
||||
{
|
||||
addFirst(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the first occurrence of the specified element
|
||||
* from the list, when traversing the list from head to
|
||||
* tail. The list is unchanged if the element is not found.
|
||||
* This is equivalent to calling {@link #remove(Object)}.
|
||||
*
|
||||
* @param o the element to remove.
|
||||
* @return true if an instance of the object was removed.
|
||||
* @since 1.6
|
||||
*/
|
||||
public boolean removeFirstOccurrence(Object o)
|
||||
{
|
||||
return remove(o);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the last occurrence of the specified element
|
||||
* from the list, when traversing the list from head to
|
||||
* tail. The list is unchanged if the element is not found.
|
||||
*
|
||||
* @param o the element to remove.
|
||||
* @return true if an instance of the object was removed.
|
||||
* @since 1.6
|
||||
*/
|
||||
public boolean removeLastOccurrence(Object o)
|
||||
{
|
||||
Entry<T> e = last;
|
||||
while (e != null)
|
||||
{
|
||||
if (equals(o, e.data))
|
||||
{
|
||||
removeEntry(e);
|
||||
return true;
|
||||
}
|
||||
e = e.previous;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue