本文共 9628 字,大约阅读时间需要 32 分钟。
此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。它包含在 collection上操作的多态算法,即“包装器”,包装器返回由指定 collection 支持的新 collection,以及少数其他内容
如果为此类的方法所提供的 collection 或类对象为 null,则这些方法都将抛出NullPointerException。
首先定义一个工具类:
public class UtilTools {
publicstatic void printCollection(Collection c){ Iterator it= c.iterator(); while(it.hasNext()){ Object o = it.next(); System.out.println(o); } } publicstatic void printMap(Map m){ Set<Map.Entry<Object,Object>> me = m.entrySet(); printCollection(me); } publicstatic void printMapKey(Map m){ Set me = m.keySet(); printCollection(me); } publicstatic void printMapValue(Map m){ Collection me = m.values(); printCollection(me); } } 1.(<?super T> c,T... elements) 将所有指定元素添加到指定 collection 中。可以分别指定要添加的元素,或者将它们指定为一个数组。此便捷方法的行为与c.addAll(Arrays.asList(elements))的行为是相同的,但在大多数实现下,此方法运行起来可能要快得多。
eg:
public class CollectionsTest {
publicstatic void main(String[] args) { List<String> l =new ArrayList<String>(); CollectionsTest.add(l); String[] s = {"s1","s2"}; Collections.addAll(l, s); Collections.addAll(l, "a1","a2"); UtilTools.printCollection(l); } publicstatic void add(Collection<String>c){ for(char i='a';i<'g';i++){ c.add(String.valueOf(i)); } } } 2.(<T> list) 根据元素的自然顺序对指定列表按升序进行排序。
eg:
public class CollectionsTest {
publicstatic void main(String[] args) { List<String> l =new ArrayList<String>(); CollectionsTest.add(l); Collections.sort(l); UtilTools.printCollection(l); } publicstatic void add(Collection<String>c){ for(char i='a';i<'g';i++){ c.add(String.valueOf(i)); } } } 3.(<T> list,<? superT> c)