1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage java.util; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * A {@code List} is a collection which maintains an ordering for its elements. Every 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * element in the {@code List} has an index. Each element can thus be accessed by its 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * index, with the first index being zero. Normally, {@code List}s allow duplicate 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * elements, as compared to Sets, where elements have to be unique. 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic interface List<E> extends Collection<E> { 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Inserts the specified object into this {@code List} at the specified location. 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The object is inserted before the current element at the specified 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * location. If the location is equal to the size of this {@code List}, the object 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is added at the end. If the location is smaller than the size of this 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code List}, then all elements beyond the specified location are moved by one 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * position towards the end of the {@code List}. 35f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param location 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the index at which to insert. 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param object 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the object to add. 40f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws UnsupportedOperationException 41f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if adding to this {@code List} is not supported. 42f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws ClassCastException 43f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if the class of the object is inappropriate for this 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code List}. 45f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws IllegalArgumentException 46f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if the object cannot be added to this {@code List}. 47f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws IndexOutOfBoundsException 48f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if {@code location < 0 || location > size()} 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void add(int location, E object); 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Adds the specified object at the end of this {@code List}. 54f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param object 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the object to add. 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return always true. 58f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws UnsupportedOperationException 59f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if adding to this {@code List} is not supported. 60f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws ClassCastException 61f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if the class of the object is inappropriate for this 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code List}. 63f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws IllegalArgumentException 64f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if the object cannot be added to this {@code List}. 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean add(E object); 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Inserts the objects in the specified collection at the specified location 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * in this {@code List}. The objects are added in the order they are returned from 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the collection's iterator. 72f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param location 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the index at which to insert. 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param collection 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the collection of objects to be inserted. 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return true if this {@code List} has been modified through the insertion, false 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * otherwise (i.e. if the passed collection was empty). 79f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws UnsupportedOperationException 80f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if adding to this {@code List} is not supported. 81f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws ClassCastException 82f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if the class of an object is inappropriate for this 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code List}. 84f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws IllegalArgumentException 85f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if an object cannot be added to this {@code List}. 86f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws IndexOutOfBoundsException 87de2ae30023028e82e4f5ae0c9e88b05649a4c1beElliott Hughes * if {@code location < 0 || location > size()} 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean addAll(int location, Collection<? extends E> collection); 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Adds the objects in the specified collection to the end of this {@code List}. The 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * objects are added in the order in which they are returned from the 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * collection's iterator. 95f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param collection 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the collection of objects. 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return {@code true} if this {@code List} is modified, {@code false} otherwise 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (i.e. if the passed collection was empty). 100f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws UnsupportedOperationException 101f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if adding to this {@code List} is not supported. 102f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws ClassCastException 103f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if the class of an object is inappropriate for this 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code List}. 105f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws IllegalArgumentException 106f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if an object cannot be added to this {@code List}. 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean addAll(Collection<? extends E> collection); 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Removes all elements from this {@code List}, leaving it empty. 112f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 113f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws UnsupportedOperationException 114f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if removing from this {@code List} is not supported. 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #isEmpty 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #size 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void clear(); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tests whether this {@code List} contains the specified object. 122f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param object 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the object to search for. 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return {@code true} if object is an element of this {@code List}, {@code false} 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * otherwise 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean contains(Object object); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tests whether this {@code List} contains all objects contained in the 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * specified collection. 133f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param collection 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the collection of objects 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return {@code true} if all objects in the specified collection are 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * elements of this {@code List}, {@code false} otherwise. 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean containsAll(Collection<?> collection); 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Compares the given object with the {@code List}, and returns true if they 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * represent the <em>same</em> object using a class specific comparison. For 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code List}s, this means that they contain the same elements in exactly the same 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * order. 146f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param object 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the object to compare with this object. 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return boolean {@code true} if the object is the same as this object, 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and {@code false} if it is different from this object. 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #hashCode 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean equals(Object object); 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the element at the specified location in this {@code List}. 157f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param location 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the index of the element to return. 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the element at the specified location. 161f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws IndexOutOfBoundsException 162de2ae30023028e82e4f5ae0c9e88b05649a4c1beElliott Hughes * if {@code location < 0 || location >= size()} 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public E get(int location); 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the hash code for this {@code List}. It is calculated by taking each 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * element' hashcode and its position in the {@code List} into account. 169f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the hash code of the {@code List}. 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int hashCode(); 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Searches this {@code List} for the specified object and returns the index of the 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * first occurrence. 177f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param object 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the object to search for. 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the index of the first occurrence of the object or -1 if the 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * object was not found. 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int indexOf(Object object); 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns whether this {@code List} contains no elements. 187f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return {@code true} if this {@code List} has no elements, {@code false} 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * otherwise. 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #size 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean isEmpty(); 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns an iterator on the elements of this {@code List}. The elements are 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * iterated in the same order as they occur in the {@code List}. 197f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return an iterator on the elements of this {@code List}. 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see Iterator 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Iterator<E> iterator(); 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Searches this {@code List} for the specified object and returns the index of the 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * last occurrence. 206f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param object 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the object to search for. 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the index of the last occurrence of the object, or -1 if the 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * object was not found. 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int lastIndexOf(Object object); 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a {@code List} iterator on the elements of this {@code List}. The elements are 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * iterated in the same order that they occur in the {@code List}. 217f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a {@code List} iterator on the elements of this {@code List} 219f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see ListIterator 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator<E> listIterator(); 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a list iterator on the elements of this {@code List}. The elements are 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * iterated in the same order as they occur in the {@code List}. The iteration 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * starts at the specified location. 228f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param location 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the index at which to start the iteration. 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a list iterator on the elements of this {@code List}. 232f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws IndexOutOfBoundsException 233f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if {@code location < 0 || location > size()} 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see ListIterator 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ListIterator<E> listIterator(int location); 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Removes the object at the specified location from this {@code List}. 240f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param location 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the index of the object to remove. 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the removed object. 244f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws UnsupportedOperationException 245f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if removing from this {@code List} is not supported. 246f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws IndexOutOfBoundsException 247de2ae30023028e82e4f5ae0c9e88b05649a4c1beElliott Hughes * if {@code location < 0 || location >= size()} 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public E remove(int location); 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Removes the first occurrence of the specified object from this {@code List}. 253f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param object 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the object to remove. 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return true if this {@code List} was modified by this operation, false 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * otherwise. 258f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws UnsupportedOperationException 259f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if removing from this {@code List} is not supported. 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean remove(Object object); 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Removes all occurrences in this {@code List} of each object in the specified 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * collection. 266f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param collection 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the collection of objects to remove. 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return {@code true} if this {@code List} is modified, {@code false} otherwise. 270f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws UnsupportedOperationException 271f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if removing from this {@code List} is not supported. 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean removeAll(Collection<?> collection); 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Removes all objects from this {@code List} that are not contained in the 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * specified collection. 278f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param collection 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the collection of objects to retain. 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return {@code true} if this {@code List} is modified, {@code false} otherwise. 282f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws UnsupportedOperationException 283f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if removing from this {@code List} is not supported. 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean retainAll(Collection<?> collection); 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Replaces the element at the specified location in this {@code List} with the 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * specified object. This operation does not change the size of the {@code List}. 290f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param location 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the index at which to put the specified object. 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param object 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the object to insert. 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the previous element at the index. 296f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws UnsupportedOperationException 297f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if replacing elements in this {@code List} is not supported. 298f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws ClassCastException 299f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if the class of an object is inappropriate for this 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code List}. 301f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws IllegalArgumentException 302f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if an object cannot be added to this {@code List}. 303f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws IndexOutOfBoundsException 304de2ae30023028e82e4f5ae0c9e88b05649a4c1beElliott Hughes * if {@code location < 0 || location >= size()} 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public E set(int location, E object); 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the number of elements in this {@code List}. 310f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the number of elements in this {@code List}. 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int size(); 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a {@code List} of the specified portion of this {@code List} from the given start 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * index to the end index minus one. The returned {@code List} is backed by this 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code List} so changes to it are reflected by the other. 319f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param start 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the index at which to start the sublist. 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param end 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the index one past the end of the sublist. 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a list of a portion of this {@code List}. 325f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws IndexOutOfBoundsException 326f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if {@code start < 0, start > end} or {@code end > 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * size()} 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public List<E> subList(int start, int end); 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns an array containing all elements contained in this {@code List}. 333f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return an array of the elements from this {@code List}. 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object[] toArray(); 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns an array containing all elements contained in this {@code List}. If the 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * specified array is large enough to hold the elements, the specified array 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is used, otherwise an array of the same type is created. If the specified 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * array is used and is larger than this {@code List}, the array element following 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the collection elements is set to null. 344f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param array 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the array. 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return an array of the elements from this {@code List}. 348f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @throws ArrayStoreException 349f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * if the type of an element in this {@code List} cannot be stored 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * in the type of the specified array. 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public <T> T[] toArray(T[] array); 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 354