Set
。这些元素使用其自然顺序进行排序,或者根据通常在创建有序 set 时提供的Comparator
进行排序。该 set 的迭代器将按元素升序遍历 set。提供了一些附加的操作来利用这种排序Comparator<? super E> comparator()
SortedSet<E> subSet(E fromElement, E toElement)
SortedSet<E> headSet(E toElement)
SortedSet<E> tailSet(E fromElement)
first()
last()
实现了Set接口
是HashSet类的子类
可预知迭代顺序的链接哈希Set(与插入元素的顺序相同),迭代时间与Set大小成正比,与容量无关。
具有HashSet的查询速度,且内部使用链表维护元素的顺序。
创建Set时,使用Collections.synchronizedSet()来包装,防止对该Set进行意外的不同步访问。
Set s= Collections.synchronizedSet(new LinkedHashSet(…))
1.基于TreeMap的NavigableSet(SortedSet的子接口)实现
2.底层是树结构
3.使用元素的自然顺序或根据创建Set时提供的Comparator进行排序
4.不允许放入null值
创建Set时,使用Collections.synchronizedSortedSet()来包装,防止对该Set进行意外的不同步访问。
Set s= Collections.synchronizedSet(new TreeSet(…))
List接口是Collection的子接口,实现List接口的容器类中的元素是有顺序的,而且可重复。
List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。
List的方法有:
int size() 返回列表中的元素数。
boolean isEmpty() 如果列表不包含元素,则返回 true。
boolean contains(Object o) 如果列表包含指定的元素,则返回 true。更确切地讲,当且仅当列表包含满足 (o==null ? e==null : o.equals(e)) 的元素 e 时才返回 true。
iterator() 返回按适当顺序在列表的元素上进行迭代的迭代器。
toArray() 返回按适当顺序包含列表中的所有元素的数组(从第一个元素到最后一个元素)。
add() 向列表的尾部添加指定的元素(可选操作)。
remove() 从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。如果列表不包含元素,则不更改列表。更确切地讲,移除满足(o==null ? get(i)==null : o.equals(get(i))) 的最低索引i 的元素(如果存在这样的元素)。如果此列表已包含指定元素(或者此列表由于调用而发生更改),则返回true。
clear() 从列表中移除所有元素(可选操作)。此调用返回后该列表将是空的。
hashCode() 返回列表的哈希码值。
get(int index) 返回列表中指定位置的元素。
set(int index, E element) 用指定元素替换列表中指定位置的元素(可选操作)。
int indexOf(Object o)
此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。
comparable接口只有一个方法:
int compareTo(T o)
主要的作用就是比较,也可以重写compareTo方法,自己定义。
java.util.Collections是一个包装类,提供各种有关集合操作的静态多态方法。
Collections不能够实例化,就像一个工具类,服务于Java集合框架。
主要方法有:
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)
sort(List)
方法)。如果没有对列表进行排序,则结果是不确定的。如果列表包含多个等于指定对象的元素,则无法保证找到的是哪一个。
此方法对“随机访问”列表运行 log(n) 次(它提供接近固定时间的位置访问)。如果指定列表没有实现
RandomAccess
接口并且是一个大型列表,则此方法将执行基于迭代器的二分搜索,执行 O(n) 次链接遍历和 O(log n) 次元素比较。
public static void reverse(List<?> list)
public static <T> void fill(List<? super T> list, T obj)
public static <T> void copy(List<? super T> dest, List<? extends T> src)
public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
public static <T> ArrayList<T> list(Enumeration<T> e)
public static <T> boolean addAll(Collection<? super T> c, T... elements)
例:
class Example { public static void main(String args[]) { List<Integer> link = new ArrayList<Integer>(); link.add(10); link.add(35); link.add(23); link.add(54); link.add(36); Comparator cmp = Collections.reverseOrder(); Collections.sort(link, cmp); Iterator it = link.iterator(); System.out.println("逆序排序的列表为: "); while (it.hasNext()) { System.out.println(it.next()); } System.out.println("给定列表中的最大值为:" + Collections.max(link)); System.out.println("给定列表中的最小值为:" + Collections.min(link)); } }
未完待续....如有你认为有什么错误,还望指点迷津。
原文:http://blog.csdn.net/cxy782255346/article/details/21336129