个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈
迭代器【重点】
遍历集合。
ArrayList:
取出某个元素:集合名.get(索引); 限制:没有索引的集合,不能进行普通for循环 优点:可以进行循环中 集合数据的增删 |
---|
取出某个元素: for(String x:list){ //x } 限制:不能在循环中做 增、删 优点:可以进行快速的正向循环 没有索引的集合也能使用 |
---|
取出元素:next()方法 优点: 1、没有索引也能迭代 2、迭代中可以进行方便删除 缺点:书写不如增强for简单 |
---|
迭代器单向的,不能回头
Iterator接口方法 |
描述 |
boolean hasNext() |
判断是否还有下一个 true:还有数据 |
E next(); |
获得下一个元素 (会让指针向下移动) |
void remove(); |
删除当前元素 |
/*
迭代器在 集合数据循环中删除 的操作上,较为方便
* 迭代器:List/set
* 方法:hasNext() 判断:迭代器中下一个是否有数据
* true:有数据
* false:没有数据
* next() 获取迭代器中下一个元素,并返回。
* remove() 删除当前迭代的元素
* */
public static void main(String[] args) {
//1、ArrayList
//1.1、定义集合
ArrayList<String> list = new ArrayList<>();
//1.2、填充数据
Collections.addAll(list,"aa","bb","cc","dd","ee","ff");
//1.3、使用迭代器进行遍历 (迭代器中无索引)
Iterator<String> i = list.iterator();
while (i.hasNext()){
//获取元素
String x = i.next();
//看看当前取出的元素是否为dd,如果为dd删除元素
if(x.equals("dd")){
i.remove();
}
System.out.println(x);
}
System.out.println("迭代后的集合:"+list);
//2、HashSet
HashSet<String> set = new HashSet<>();
Collections.addAll(set,"aa","bb","cc","dd","ee","ff");
//2.1、获取迭代器
Iterator<String> i2 = set.iterator();
//2.2、使用迭代器循环
while (i2.hasNext()){
//获取数据
String x = i2.next();
//如果当前元素是ff,就删除
if(x.equals("ff")){
i2.remove();
}
}
System.out.println(set);
}
只有List和Set集合可以使用迭代器
附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读/书籍书单大全:
(点击右侧 即可打开个人博客内有干货):技术干货小栈
=====>>①【Java大牛带你入门到进阶之路】<<====
=====>>②【算法数据结构+acm大牛带你入门到进阶之路】<<===
=====>>③【数据库大牛带你入门到进阶之路】<<=====
=====>>④【Web前端大牛带你入门到进阶之路】<<====
=====>>⑤【机器学习和python大牛带你入门到进阶之路】<<====
=====>>⑥【架构师大牛带你入门到进阶之路】<<=====
=====>>⑦【C++大牛带你入门到进阶之路】<<====
=====>>⑧【ios大牛带你入门到进阶之路】<<====
=====>>⑨【Web安全大牛带你入门到进阶之路】<<=====
=====>>⑩【Linux和操作系统大牛带你入门到进阶之路】<<=====天下没有不劳而获的果实,望各位年轻的朋友,想学技术的朋友,在决心扎入技术道路的路上披荆斩棘,把书弄懂了,再去敲代码,把原理弄懂了,再去实践,将会带给你的人生,你的工作,你的未来一个美梦。