java iterator 接口_Java中Collection和Iterator接口

1.Collection接口是List、Set和Queue接口的父接口,该接口里面定义方法即可用与操作Set集合,也用于操作List和Queue集合。Collection接口里面定义一些操作集合元素的方法。boolean add(Object o):该方法用于向集合里面添加一个元素。boolean addAll(Collection c):该方法把集合c里面的所有元素添加到指定集合里面。 void clear():清除集合里面的的所有元素,将集合长度变为0。boolean contains(Object o):返回集合里面包含指定元素。boolean containsAll(Collection c):返回集合是否包含集合c里的所有元素。boolean isEmpty():返回集合是否为空。 Iterator iterator():返回一个Iterator对象用于遍历集合里面的所有元素。boolean remove(Object o):删除集合中的指定元素,当集合里面有多元素,只删除第一个符合条件的元素。boolean removeAll(Collection c):从集合里面删除c里面包括所有元素。boolean ratainAll(Collection c):从集合中删除集合c里面的不包含的所有元素。(相当于求交集)。int size():返回集合里面的元素个数。Object []  toArray():该方法把集合转换成一个数组,所有集合中的元素变为对应的数组的元素。

2.java8为Iterable接口新增加了一个forEach(Consumer action)默认方法,该方法所需参数的类型是一个函数式接口,而Iterable接口是Collection接口的父类接口,因此Collection集合也可以直接调用该方法。当程序调用Iterable的forEach(Consumer action)遍历集合元素是=时,程序会依次将集合的元素传给Consumer的accept(T t)方法,该接口中唯一的抽象方法。正因为Consumer是函数式接口,因此可以使用Lambda表达式来遍历几何元素。

package com.lanou.test;

import java.util.ArrayList;

public class Demo05 {

public static void main(String[] args) {

// TODO Auto-generated method stub

ArrayList arraylist=new ArrayList();

arraylist.add(1);

arraylist.add("jsdjk");

arraylist.add(656);

arraylist.forEach(obj->{System.out.println(obj);});

}

}

3.Iterator接口也是java集合框架的成员,但它与Collection系列、Map系列的集合不一样:Collection系列集合、Map系列集合主要用于盛装其他对象,而Iterator则主要用于遍历Collection集合中元素,Iterator对象也被成为迭代器。Iterator接口隐藏了各种Collection实现类的底层细节,向应用程序提供遍历Collection集合元素的统一的编程接口。Iterator接口实现的方法boolean hasNext():如果被迭代的集合元素还没有被遍历完,则返回true;Object next():返回集合的下一个元素。void remove():删除集合里上一次next方法返回的元素.void forEachRemaining(Consumer action):该方法可使用Lambda表达式来遍历集合。

package com.lanou.test;

import java.util.HashSet;

import java.util.Iterator;

public class Demo07 {

public static void main(String[] args) {

// TODO Auto-generated method stub

HashSet hashset=new HashSet();

hashset.add("fjkjk");

hashset.add("jfdsjk");

hashset.add("asdds");

Iterator it=hashset.iterator();

while(it.hasNext()){

String temp=(String)it.next();

System.out.println(temp);

}

}

}

4.java8为Collection集合新增一个removeIF(Predicte filter)方法,该方法将会批量删除符合filter条件的所有元素,该方法需要一个Predicate(谓词)对象作为参数,Predicate也是函数式接口,因此可使用lanbda表达式作为参数。如hashset.removeIF(ele->((String)ele).length()<10)。

5.java8还新增了Stream、IntStream、Longstream、DoubleStram等流式API,这些API代表多个支持串行和并行聚集操作元素。四个接口中,Stream是一个通用的流接口,而InStream、LongStream、DoubleStream则代表元素类型为Int、long、double的流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值