Collection接口(java.util.Collection )是java集合根接口之一,不直接实例化Collection,但通常使用子类
创建Collection
如上所述,不是直接实例化Collection,而是实例化它的子类。 下面是创建Collection子类List的代码。集合集合=新阵列列表(; 以上示例适用于Collection的每个子类型。
Collection子类
Collection的子类接口:istsetsortedsetnavigablesetquedequejava没有提供Collection接口的可用实现,因此必须使用所列子类型之一。 Collection接口只定义了所有子类共享的一组方法,可以忽略特定类型,将其视为Collection。 因为这是标准的继承,所以没什么奇怪的地方,但也可以是很好的特性。 这些通用操作将在后面叙述。
下面的代码是使用Collection的方法。
公共类mycollectionutil {
公共建筑(集合) {
迭代器迭代器=收集器.迭代器(;
while(iterator.Hasnext () ) ) ) )
对象对象=迭代器. next (;
//do对象求解.
}
}
}上述方法由几个不同的Collection子类调用。
set set=新的hashset (;
列表=新阵列列表(;
mycollectionutil.do something (set );
mycollectionutil.do something (列表; 在
Collection增加元素
中,使用Collection的任何子类都有添加标准元素的方法。 Collection的add ) )方法添加元素。 代码如下所示。字符串元素='字符串元素';
集合集合=新建hashset (;
Booleandidcollectionchange=collection.add (AN element ); add ) )方法添加指定的元素,然后添加) ) )如果通过方法的调用更改了Collection,则返回true。 如果Set已经包含此元素,则不再增加。 另一方面,对于List,List中存在两个相同的元素。
Collection移除元素
remove ) )方法删除指定的元素。 如果元素在集合中,则返回true;如果元素不存在,则返回false。 代码如下所示。Booleanwaselementremoved=collection.remove (东盟元素); 与
Collection增加另外一个Collection
一样,Collection的addAll (可以使用方法添加另一个Collection。 代码如下所示。setaset=.//getsetwithelementsfromsomewhere
集合集合=新建hashset (;
collection.addall (资产; //returns布尔托奥, but ignored hereCollection的ddAll ) )方法添加参数Collection的所有元素,但添加的是Collection本身不是其元元素,而是使用Collection作为参数进行添加) 对于某些Collection子类型,可以多次添加相同的元素,但不能在其他子类型中添加。
Collection移除Collection
Collection的removeAll (会删除指定参数Collection的所有元素。 如果参数Collection的元素不存在于自身的Collection中,则将其忽略。 代码如下所示。集合对象=//. getacollectionofobjectsfromsomewhere。
collection.rem
oveAll(objects);保留给定的Collection中的元素
Collection 的retainAll()方法刚好和 removeAll()方法相反,不是移除所有给定参数中的Collection元素,而是保留这些元素,移除其他的元素,需要注意的是仅仅保留原Collection中存在的元素。任何在参数中存在而原Collection中不存在的元素,会被忽略,不会被增加,下面代码:
Collection colA = new ArrayList(); Collection colB = new ArrayList(); colA.add("A"); colA.add("B"); colA.add("C"); colB.add("1"); colB.add("2"); colB.add("3"); Collection target = new HashSet(); target.addAll(colA); //target now contains [A,B,C] target.addAll(colB); //target now contains [A,B,C,1,2,3] target.retainAll(colB); //target now contains [1,2,3]检查Collection是否包含确定的元素
Collection有两个方法可以检查是否包含某个或者某些确定的元素, contains()和 containsAll()方法,下面是代码:
Collection collection = new HashSet(); boolean containsElement = collection.contains("an element"); Collection elements = new HashSet(); boolean containsAll = collection.containsAll(elements);如果Collection中包含某个元素contains() 方法会返回true,否则会返回false。
如果Collection中包含给定Collection的所有元素,那么containsAll()返回true,否则返回false。
Collection大小
可以调用Collection的size()方法,返回Collection中的元素个数,下面代码:
int numberOfElements = collection.size();迭代Collection
可以通过Iterator迭代Collection中的所有元素,下面是代码:
Collection collection = new HashSet(); //... add elements to the collection Iterator iterator = collection.iterator(); while(iterator.hasNext()){ Object object = iterator.next(); System.out.println(object); }同样可以通过for-each循环迭代Collection:
Collection collection = new HashSet(); collection.add("A"); collection.add("B"); collection.add("C"); for(Object object : collection) { System.out.println(object); }参考:https://blog.csdn.net/cgsyck/article/details/108276863
https://blog.csdn.net/cgsyck/article/details/108292980
http://tutorials.jenkov.com/java-collections/collection.html