首页 > 编程知识 正文

collection的直接子类(java多态)

时间:2023-05-05 09:49:31 阅读:90723 作者:2006

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。