Welcome 微信登录

首页 / 操作系统 / Linux / Java集合框架之Collection接口

Java是一门面向对象的语言,那么我们写程序的时候最经常操作的便是对象了,为此,Java提供了一些专门用来处理对象的类库,这些类库的集合我们称之为集合框架。Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些接口或实现类。可以看到Collection并没有直接实现类,而是提供更具体的子接口实现。通过查询API,可以总结出Collection的基本功能。

1、添加

boolean add(E e):添加一个元素boolean addAll(Collection<? extends E> c):添加一个集合的元素示例代码 1 package collection; 23 import java.util.ArrayList; 4 import java.util.Collection; 56 public class CollectionDemo1 { 7 public static void main(String[] args) { 8 Collection collection1 = new ArrayList(); // Collection是接口,实例化其子类 9 collection1.add("红楼梦");10 collection1.add("三国演义");11 System.out.println(collection1);12 13 Collection collection2 = new ArrayList();14 collection2.add("西游记");15 collection2.add("水浒传");16 17 collection1.add(collection2);18 System.out.println(collection1);19 }20 }输出结果:[红楼梦, 三国演义][红楼梦, 三国演义, [西游记, 水浒传]]

2、删除

void clear():清空集合中的所有元素boolean remove(Object o):移除指定的元素boolean removeAll(Collection<?> c):移除一个集合的元素示例代码 1 package collection; 23 import java.util.ArrayList; 4 import java.util.Collection; 56 public class CollectionDemo2 { 7 public static void main(String[] args) { 8 Collection collection1 = new ArrayList(); // Collection是接口,实例化其子类 9 collection1.add("红楼梦");10 collection1.add("三国演义");11 collection1.add("西游记");12 collection1.add("水浒传");13 System.out.println("初始状态:" + collection1);14 15 boolean b1 = collection1.remove("红楼梦");16 System.out.println("是否移除了元素:" + b1);17 System.out.println("移除一个元素:" + collection1);18 System.out.println();19 20 Collection collection2 = new ArrayList();21 collection2.add("三国演义");22 collection2.add("西游记");23 collection2.add("平凡的世界");24 boolean b2 = collection1.removeAll(collection2); // 移除两个集合的交集,只要有一个元素被移除了,就返回true25 System.out.println("移除一个集合:" + collection1);26 System.out.println("是否移除了元素:" + b2);27 System.out.println();28 29 Collection collection3 = new ArrayList();30 collection3.add("平凡的世界");31 collection3.add("围城");32 boolean b3 = collection1.removeAll(collection3);// 移除两个集合的交集,只要有一个元素被移除了,就返回true33 System.out.println("移除一个集合:" + collection1);34 System.out.println("是否移除了元素:" + b3);35 System.out.println();36 37 collection1.clear();38 System.out.println("清除集合中的所有元素:" + collection1);39 }40 }输出结果初始状态:[红楼梦, 三国演义, 西游记, 水浒传]是否移除了元素:true移除一个元素:[三国演义, 西游记, 水浒传]移除一个集合:[水浒传]是否移除了元素:true移除一个集合:[水浒传]是否移除了元素:false清除集合中的所有元素:[]

3、判断

boolean contains(Object o):判断集合是否包含指定元素boolean containsAll(Collection<?> c):判断集合是否包含指定的集合元素boolean isEmpty():判断集合是否为空示例代码 1 package collection; 23 import java.util.ArrayList; 4 import java.util.Collection; 56 public class CollectionDemo3 { 7 public static void main(String[] args) { 8 Collection collection1 = new ArrayList(); // Collection是接口,实例化其子类 9 collection1.add("红楼梦");10 collection1.add("三国演义");11 collection1.add("西游记");12 collection1.add("水浒传");13 System.out.println("是否包含红楼梦:" + collection1.contains("红楼梦"));14 15 Collection collection2 = new ArrayList();16 collection2.add("三国演义");17 collection2.add("西游记");18 collection2.add("平凡的世界");19 System.out.println("是否包含一个集合中元素:" + collection1.containsAll(collection2)); // 包含所有才包含20 21 System.out.println("集合是否为空:" + collection1.isEmpty());22 }23 }输出结果是否包含红楼梦:true是否包含一个集合中元素:false集合是否为空:false

4、获取长度

int size():获取集合中元素的个数示例代码 1 package collection; 23 import java.util.ArrayList; 4 import java.util.Collection; 56 public class CollectionDemo4 { 7 public static void main(String[] args) { 8 Collection collection = new ArrayList(); // Collection是接口,实例化其子类 9 collection.add("红楼梦");10 collection.add("三国演义");11 collection.add("西游记");12 collection.add("水浒传");13 System.out.println("元素个数:" + collection.size());14 }15 }输出结果元素个数:4

5、交集

boolean retainAll(Collection<?> c):保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。换句话说,移除此 collection 中未包含在指定 collection 中的所有元素。示例代码 1 package collection; 23 import java.util.ArrayList; 4 import java.util.Collection; 56 public class CollectionDemo5 { 7 public static void main(String[] args) { 8 Collection collection1 = new ArrayList(); // Collection是接口,实例化其子类 9 collection1.add("红楼梦");10 collection1.add("三国演义");11 collection1.add("西游记");12 collection1.add("水浒传");13 14 Collection collection2 = new ArrayList();15 collection2.add("西游记");16 collection2.add("水浒传");17 System.out.println(collection1.retainAll(collection2));18 System.out.println("collection1:" + collection1);19 System.out.println("collection2:" + collection2);20 21 Collection collection3 = new ArrayList();22 collection3.add("西游记");23 collection3.add("平凡的世界");24 System.out.println(collection1.retainAll(collection3));25 System.out.println("collection1: " + collection1);26 System.out.println("collection2: " + collection2);27 }28 }输出结果truecollection1:[西游记, 水浒传]collection2:[西游记, 水浒传]truecollection1: [西游记]collection2: [西游记, 水浒传]从上面结果分析得知,collection1集合与collection2集合做交集运算,最后的结果保留在collection1中,而collection2中的元素保持不变。

6、集合转数组

Object[] toArray():集合转数组示例代码 1 package collection; 23 import java.util.ArrayList; 4 import java.util.Collection; 56 public class CollectionDemo6 { 7 public static void main(String[] args) { 8 Collection collection = new ArrayList(); // Collection是接口,实例化其子类 9 collection.add("红楼梦");10 collection.add("三国演义");11 collection.add("西游记");12 collection.add("水浒传");13 14 Object[] objects = collection.toArray();15 16 for (Object object : objects) {17 System.out.println(object);18 }19 }20 }输出结果红楼梦三国演义西游记水浒传

7、遍历

Iterator<E> iterator():返回在此 collection 的元素上进行迭代的迭代器,迭代器是集合特有的遍历方式其中Iterator是一个接口,其有3个方法boolean hasNext():如果仍有元素可以迭代,则返回 true。E next():返回迭代的下一个元素,并移动到下一个位置。void remove():从迭代器指向的 collection 中移除迭代器返回的最后一个元素示例代码 1 package collection; 23 import java.util.ArrayList; 4 import java.util.Collection; 5 import java.util.Iterator; 67 public class CollectionDemo7 { 8 public static void main(String[] args) { 9 Collection collection = new ArrayList(); // Collection是接口,实例化其子类10 collection.add("红楼梦");11 collection.add("三国演义");12 collection.add("西游记");13 collection.add("水浒传");14 15 Iterator it = collection.iterator();16 17 while (it.hasNext()) {18 Object object = it.next();19 System.out.println(object);20 }21 22 it.remove(); // 如果未调用next方法,则会抛出IllegalStateException异常23 System.out.println(collection);24 }25 }输出结果红楼梦三国演义西游记水浒传[红楼梦, 三国演义, 西游记]至此,Collection接口的方法介绍完毕。本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/138660.htm