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 * SortedSet is a Set which iterates over its elements in a sorted order. The 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * order is determined either by the elements natural ordering, or by a 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@link Comparator} which is passed into a concrete implementation at 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * construction time. All elements in this set must be mutually comparable. The 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * ordering in this set must be consistent with {@code equals} of its elements. 27f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see Comparator 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see Comparable 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic interface SortedSet<E> extends Set<E> { 32f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the comparator used to compare elements in this {@code SortedSet}. 35f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a comparator or null if the natural ordering is used. 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Comparator<? super E> comparator(); 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the first element in this {@code SortedSet}. The first element 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is the lowest element. 43f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the first element. 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws NoSuchElementException 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * when this {@code SortedSet} is empty. 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public E first(); 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a {@code SortedSet} of the specified portion of this 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code SortedSet} which contains elements less than the end element. The 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * returned {@code SortedSet} is backed by this {@code SortedSet} so changes 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * to one set are reflected by the other. 55f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param end 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the end element. 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a subset where the elements are less than {@code end}. 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws ClassCastException 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * when the class of the end element is inappropriate for this 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * SubSet. 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws NullPointerException 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * when the end element is null and this {@code SortedSet} does 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * not support null elements. 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public SortedSet<E> headSet(E end); 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the last element in this {@code SortedSet}. The last element is 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the highest element. 71f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the last element. 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws NoSuchElementException 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * when this {@code SortedSet} is empty. 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public E last(); 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a {@code SortedSet} of the specified portion of this 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code SortedSet} which contains elements greater or equal to the start 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * element but less than the end element. The returned {@code SortedSet} is 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * backed by this SortedMap so changes to one set are reflected by the 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * other. 84f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param start 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the start element. 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param end 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the end element. 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a subset where the elements are greater or equal to {@code start} 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and less than {@code end}. 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws ClassCastException 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * when the class of the start or end element is inappropriate 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * for this SubSet. 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws NullPointerException 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * when the start or end element is null and this 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code SortedSet} does not support null elements. 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws IllegalArgumentException 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * when the start element is greater than the end element. 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public SortedSet<E> subSet(E start, E end); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a {@code SortedSet} of the specified portion of this 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code SortedSet} which contains elements greater or equal to the start 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * element. The returned {@code SortedSet} is backed by this 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code SortedSet} so changes to one set are reflected by the other. 107f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param start 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the start element. 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a subset where the elements are greater or equal to {@code start} . 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws ClassCastException 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * when the class of the start element is inappropriate for this 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * SubSet. 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws NullPointerException 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * when the start element is null and this {@code SortedSet} 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * does not support null elements. 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public SortedSet<E> tailSet(E start); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 120