Collection和Iterator接口方法详解
2017-07-20 19:14
267 查看
Collection接口里常用方法:
下面实例示范了如何通过上面的方法来操作Collection集合里的元素。
package base1; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; public class CollectionDemo { public static void main(String[] args){ Collection c = new ArrayList(); //添加元素 c.add("孙悟空"); c.add(6); System.out.println("c集合里的元素个数为:"+c.size()); //删除指定的元素 c.remove(6); System.out.println("c集合里的元素个数:"+c.size()); //判断是否包含指定字符串 System.out.println("c集合里是否包含[孙悟空]这个元素:"+c.contains("孙悟空")); c.add("轻量级java疯狂讲义"); System.out.println("c集合里的元素:"+c); Collection books = new HashSet(); books.add("轻量级java疯狂讲义"); books.add("疯狂java讲义"); System.out.println("c集合是否完全包含books集合?"+c.containsAll(books)); //两个集合里相同的元素全部去掉 c.removeAll(books); System.out.println("c集合里的元素:"+c); //清空c集合 c.clear(); System.out.println("c集合里的元素:"+c); //只保留c和books集合里相同的元素 books.retainAll(c); System.out.println("books集合里的元素:"+books); } }
上面程序中创建了两个Collection对象,一个是c集合,一个是books集合,虽然两个集合所使用的实现类不一样,但当把他们当成Collection来使用时,使用add,remove,clear等方法来操作集合元素时没有任何区别。
下面是程序运行结果:
c集合里的元素个数为:2 c集合里的元素个数:1 c集合里是否包含[孙悟空]这个元素:true c集合里的元素:[孙悟空, 轻量级java疯狂讲义] c集合是否完全包含books集合?false c集合里的元素:[孙悟空] c集合里的元素:[] books集合里的元素:[]
Java8增强的Iterator遍历集合元素
Iterator接口也是Java集合框架的成员,但它与Collection,Map的集合不一样:Collection集合,Map集合主要用于盛装其他对象,而Iterator则主要用于遍历(即迭代访问)Collection集合中的元素,Iterator对象被称之为迭代器。下面通俗的解释一下什么是迭代器:可以把迭代器比喻成电玩城里夹布娃娃的夹子,夹子的开始,移动,松手就代表迭代器中的方法;在不同的电玩城夹子的形状也会有所不同,这行不同的形状就代表迭代器的实现类;夹子被封装在箱子里,就表示迭代器的类要被封装在内部,是内部类;要想夹起布娃娃就要通过外面的操纵杆来完成,所以操纵杆就代表实现迭代器的操作者。Iterator接口里定义的方法:
下面实例示范了如何通过Iterator接口来遍历集合元素:
package base4; import java.util.List; import java.util.ArrayList; import java.util.ListIterator; public class ListDemo { public static void method(Object obj){ System.out.println(obj); } public static void main(String[] args){ ArrayList a = new ArrayList(); a.add("java01"); a.add("java02"); a.add("java03"); method("原集合:"+a); for(ListIterator li = a.listIterator();li.hasNext();){ Object obj = li.next(); if(obj.equals("java02")){ //li.add("java006"); li.remove(); method(a); } 4000 } } }
运行结果如下:
原集合:[java01, java02, java03] [java01, java03]
使用lambda表达式遍历Iterator
Java8新增了一个forEachRemaining(Consumer action)方法,该方法所需的Consumer参数是函数式接口。当程序调用Iterator的forEachRemaining(Consumer action)遍历集合元素时,程序会依次将集合元素传给Consumer的accept(T t)方法(该接口的唯一抽象方法)下面程序示范了使用lambda表达式来遍历集合元素:
package base1; import java.util.*; public class test { public static void main(String[] args){ ArrayList al = new ArrayList(); al.add("java01"); al.add("java02"); al.add("java03"); al.add("java04"); //获取al集合对应的迭代器 Iterator it = al.iterator(); it.forEachRemaining(obj->System.out.println("迭代集合元素:"+obj)); } }
运行结果:
迭代集合元素:java01 迭代集合元素:java02 迭代集合元素:java03 迭代集合元素:java04
相关文章推荐
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与LinkedHashSet类))
- 黑马程序员---集合体系的继承关系图。顶层接口Collection中的方法,迭代器Iterator使用和原理,List派系特点
- Java集合概述集Collection 和 Iterator 接口用法详解
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
- Java泛型二:泛型类 泛型接口 泛型方法详解
- rabbitmq channel接口常用方法详解
- JAVA的Collection接口和Iterator接口中的常用方法
- Java--Iterator接口和Iterable接口详解
- 155_集合_Collection集合的常用方法详解_03_contains
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- 为什么我们要尽可能使用Iterator接口中的remove方法而不是用Collection接口中的remove方法
- Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- Java--Iterator接口和Iterable接口详解
- linux上iscsi工具部署详解&&分布式文件系统提供iscsi接口的简单方法
- 方法接口Service与AIDL详解
- C语言接口与实现方法实例详解
- 黑马程序员_两种遍历集合的方法Iterator接口和foreach循环
- Collection和Iterator接口
- 个人对List接口中的iterator方法的使用了解
- 几个JAVA集合中常用的接口学习:Collection、Iterator和Map