深入理解Collections API
http://tech.ddvip.com 2006年11月23日 社区交流
本文详细介绍深入理解Collections API
c.removeAll(Collections.singleton(null));
这个惯用程序使用了Collections.singleton, 它是一个返回只包含特定元素且永恒不变的Set的静态方法。
Array Operations(数组操作)toArray方法可作为对象集 和期望将数组作为输入的旧的API之间的一个桥梁,它允许将一个Collection的内容转换为一个数组。没有参数的简单形式创建了一个新的Object(对象)数组。更复杂的形式允许调用者提供一个数组或选择这个输出数组的运行时类型。 例如,假设c是一个Collection。 如下程序可将c的内容倾卸到一个新分配的Object数组中,数组的长度与c中元素的数量相同。
Object[] a = c.toArray();
假设已知c仅包含字符串。下列程序则将c的内容倾卸到一个新分配String数组中,数组的长度与c中元素的数量相同。
String[] a = (String[]) c.toArray(new String[0]);
Set接口
Set是一个不包含重复元素的Collection。Set接口塑造了抽象的set数学模型。Set接口不包含除从Collection中继承的方法之外的任何其它方法。它禁止使用重复元素,同时它还增加了对equals和hashCode操作行为的限制,允许不同实现类型的Set对象可做比较。如果两个Set对象包含同样的元素,则它们是相等的。
Set接口如下所示:
public interface Set {
// Basic Operations
int size();
boolean isEmpty();
boolean contains(Object element);
boolean add(Object element); // Optional
boolean remove(Object element); // Optional
Iterator iterator();
// Bulk Operations
boolean containsAll(Collection c);
boolean addAll(Collection c); // Optional
boolean removeAll(Collection c); // Optional
boolean retainAll(Collection c); // Optional
void clear(); // Optional
// Array Operations
Object[] toArray();
Object[] toArray(Object a[]);
}JDK包含两个通用Set实现。一个是HashSet, 它将它的元素存储于哈希表中,它是一种最好的实现;另一个是TreeSet, 它将它的元素存储在一个红-黑树上,它保证了迭代顺序。
责编:豆豆技术应用