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):添加一个集合的元素
示例代码
package collection; import java.util.arraylist; import java.util.collection; public class collectiondemo1 { public static void main(string[] args) { collection collection1 = new arraylist(); // collection是接口,实例化其子类 collection1.add("红楼梦"); collection1.add("三国演义"); system.out.println(collection1); collection collection2 = new arraylist(); collection2.add("西游记"); collection2.add("水浒传"); collection1.add(collection2); system.out.println(collection1); } }
输出结果:
[红楼梦, 三国演义]
[红楼梦, 三国演义, [西游记, 水浒传]]
2、删除
void clear():清空集合中的所有元素
boolean remove(object o):移除指定的元素
boolean removeall(collection<?> c):移除一个集合的元素
示例代码
package collection; import java.util.arraylist; import java.util.collection; public class collectiondemo2 { public static void main(string[] args) { collection collection1 = new arraylist(); // collection是接口,实例化其子类 collection1.add("红楼梦"); collection1.add("三国演义"); collection1.add("西游记"); collection1.add("水浒传"); system.out.println("初始状态:" + collection1); boolean b1 = collection1.remove("红楼梦"); system.out.println("是否移除了元素:" + b1); system.out.println("移除一个元素:" + collection1); system.out.println(); collection collection2 = new arraylist(); collection2.add("三国演义"); collection2.add("西游记"); collection2.add("平凡的世界"); boolean b2 = collection1.removeall(collection2); // 移除两个集合的交集,只要有一个元素被移除了,就返回true system.out.println("移除一个集合:" + collection1); system.out.println("是否移除了元素:" + b2); system.out.println(); collection collection3 = new arraylist(); collection3.add("平凡的世界"); collection3.add("围城"); boolean b3 = collection1.removeall(collection3);// 移除两个集合的交集,只要有一个元素被移除了,就返回true system.out.println("移除一个集合:" + collection1); system.out.println("是否移除了元素:" + b3); system.out.println(); collection1.clear(); system.out.println("清除集合中的所有元素:" + collection1); } }
输出结果
初始状态:[红楼梦, 三国演义, 西游记, 水浒传]
是否移除了元素:true
移除一个元素:[三国演义, 西游记, 水浒传]
移除一个集合:[水浒传]
是否移除了元素:true
移除一个集合:[水浒传]
是否移除了元素:false
清除集合中的所有元素:[]
3、判断
boolean contains(object o):判断集合是否包含指定元素
boolean containsall(collection<?> c):判断集合是否包含指定的集合元素
boolean isempty():判断集合是否为空
示例代码
package collection; import java.util.arraylist; import java.util.collection; public class collectiondemo3 { public static void main(string[] args) { collection collection1 = new arraylist(); // collection是接口,实例化其子类 collection1.add("红楼梦"); collection1.add("三国演义"); collection1.add("西游记"); collection1.add("水浒传"); system.out.println("是否包含红楼梦:" + collection1.contains("红楼梦")); collection collection2 = new arraylist(); collection2.add("三国演义"); collection2.add("西游记"); collection2.add("平凡的世界"); system.out.println("是否包含一个集合中元素:" + collection1.containsall(collection2)); // 包含所有才包含 system.out.println("集合是否为空:" + collection1.isempty()); } }
输出结果
是否包含红楼梦:true
是否包含一个集合中元素:false
集合是否为空:false
4、获取长度
int size():获取集合中元素的个数
示例代码
package collection; import java.util.arraylist; import java.util.collection; public class collectiondemo4 { public static void main(string[] args) { collection collection = new arraylist(); // collection是接口,实例化其子类 collection.add("红楼梦"); collection.add("三国演义"); collection.add("西游记"); collection.add("水浒传"); system.out.println("元素个数:" + collection.size()); } }
输出结果
元素个数:4
5、交集
boolean retainall(collection<?> c):保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。换句话说,移除此 collection 中未包含在指定 collection 中的所有元素。
示例代码
package collection; import java.util.arraylist; import java.util.collection; public class collectiondemo5 { public static void main(string[] args) { collection collection1 = new arraylist(); // collection是接口,实例化其子类 collection1.add("红楼梦"); collection1.add("三国演义"); collection1.add("西游记"); collection1.add("水浒传"); collection collection2 = new arraylist(); collection2.add("西游记"); collection2.add("水浒传"); system.out.println(collection1.retainall(collection2)); system.out.println("collection1:" + collection1); system.out.println("collection2:" + collection2); collection collection3 = new arraylist(); collection3.add("西游记"); collection3.add("平凡的世界"); system.out.println(collection1.retainall(collection3)); system.out.println("collection1: " + collection1); system.out.println("collection2: " + collection2); } }
输出结果
true
collection1:[西游记, 水浒传]
collection2:[西游记, 水浒传]
true
collection1: [西游记]
collection2: [西游记, 水浒传]
从上面结果分析得知,collection1集合与collection2集合做交集运算,最后的结果保留在collection1中,而collection2中的元素保持不变。
6、集合转数组
object[] toarray():集合转数组
示例代码
package collection; import java.util.arraylist; import java.util.collection; public class collectiondemo6 { public static void main(string[] args) { collection collection = new arraylist(); // collection是接口,实例化其子类 collection.add("红楼梦"); collection.add("三国演义"); collection.add("西游记"); collection.add("水浒传"); object[] objects = collection.toarray(); for (object object : objects) { system.out.println(object); } } }
输出结果:
红楼梦
三国演义
西游记
水浒传
7、遍历
iterator<e> iterator():返回在此 collection 的元素上进行迭代的迭代器,迭代器是集合特有的遍历方式
其中iterator是一个接口,其有3个方法
boolean hasnext():如果仍有元素可以迭代,则返回 true。
e next():返回迭代的下一个元素,并移动到下一个位置。
void remove():从迭代器指向的 collection 中移除迭代器返回的最后一个元素
示例代码
package collection; import java.util.arraylist; import java.util.collection; import java.util.iterator; public class collectiondemo7 { public static void main(string[] args) { collection collection = new arraylist(); // collection是接口,实例化其子类 collection.add("红楼梦"); collection.add("三国演义"); collection.add("西游记"); collection.add("水浒传"); iterator it = collection.iterator(); while (it.hasnext()) { object object = it.next(); system.out.println(object); } it.remove(); // 如果未调用next方法,则会抛出illegalstateexception异常 system.out.println(collection); } }
输出结果:
红楼梦
三国演义
西游记
水浒传
[红楼梦, 三国演义, 西游记]
至此,collection接口的方法介绍完毕。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。