集合中使用迭代器
<1>迭代器和集合的关系: 迭代器是操作集合的第二种方式,后期可以延展使用到很多地方,并且存在一个升级版内容【增强for循环】
迭代器和集合本身有着密切关系,首先迭代器的获取,就是通过集合对象,得到对应当前集合的迭代器;
获取迭代器的方法:Iterator<E> iterator();
获取迭代器对象,泛型对应的具体数据类型和集合中约束的泛型具体数据类型一致;
<2>迭代器操作使用到的方法:
boolean hasNext();
判断当前集合中是否可以继续得到元素,能否继续遍历;
E next();
①获取迭代器当前指向的元素;
②将迭代器指向下一个元素;
void remove();
删除通过next方法获取到的元素;
【注意事项】
①remove方法只能删除next方法获取到元素;
②remove方法只能在next方法之后执行,且不能跨过一个next执行;
③没有next不能使用remove;
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26class Panda{ public static void main(String[] args) { //使用迭代器操作集合 Collection<String> list = new ArrayList<>(); list.add("小哈"); list.add("小金"); list.add("小花"); list.add("小黄"); list.add("小撒"); System.out.println("原始list:"+list); //获取对应当前集合的迭代器对象 //集合中保存的元素是什么类型,迭代器操作元素就是什么类型 //迭代器在获取过程中,默认执行集合中的第一个元素 Iterator<String> iterator = list.iterator(); //hashNext() 判断当前集合是否可以继续获取到元素 System.out.println("演示hashNext()方法:"+iterator.hasNext()); //next() 方法 获取迭代器当前指向的元素并将迭代器指向下一个元素 System.out.println("演示next()方法:"+iterator.next()); System.out.println("演示next()方法:"+iterator.next()); //remove() 方法 删除通过next() 方法获取到的元素 System.out.println("remove()执行"); iterator.remove(); System.out.println("操作后list:"+list); } }
循环+迭代器联合操作集合
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28class Panda{ public static void main(String[] args) { //使用迭代器操作集合 Collection<String> list = new ArrayList<>(); list.add("小哈"); list.add("小金"); list.add("小花"); list.add("小黄"); list.add("小撒"); System.out.println("原始list:"+list); //获取对应当前集合的迭代器对象 //集合中保存的元素是什么类型,迭代器操作元素就是什么类型 //迭代器在获取过程中,默认执行集合中的第一个元素 Iterator<String> iterator = list.iterator(); //使用循环与迭代器,删除掉集合中所有元素 //hashNext() 判断当前集合是否可以继续获取到元素 //如果不用hasNext() 方法进行判断当集合中不可以继续获取到元素的时候,调用next() 方法会报错 //NoSuchElementException while(iterator.hasNext()){ //next() 方法 获取迭代器当前指向的元素并将迭代器指向下一个元素 iterator.next(); //remove() 方法 删除通过next() 方法获取到的元素 iterator.remove(); System.out.println("操作后list:"+list); } } }
最后
以上就是害羞小蘑菇最近收集整理的关于71.集合中使用迭代器;循环+迭代器联合操作集合;的全部内容,更多相关71内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复