java集合与数组遍历-iterator和for方法
2016-03-28 14:50
477 查看
>>> Iterator接口
Java JDK提供的类都是继承自Collection的"子接口",如:List和Set。Map没有继承Collection接口,Map提供key到value的映射。
Iterator接口也是Java集合框架的成员,但它与Collection系列、Map系列的集合不一样:Collection系列集合、Map系列集合主要用于盛装其他对象,而Iterator则主要用于遍历(即迭代访问)Collection集合中的元素,Iterator对象也被称为迭代器。
Iterator接口里定义了如下4个方法:
–boolean hasNext():如果被迭代的集合还元素没有被遍历,则返回true。
–Object next():返回集合里下一个元素。
–void remove() :删除集合里上一次next方法返回的元素
–void forEachRemaining(Consumer action),这是Java 8为Iterator新增的默认方法,该方法可使用Lambda表达式来遍历集合元素。
public class TestIterator {
public static void main(String[] args) {
// 创建集合、添加元素的代码与前一个程序相同
Collection books = new HashSet();
books.add("轻量级Java EE企业应用实战");
books.add("疯狂Java讲义");
books.add("疯狂Android讲义");
// 获取books集合对应的迭代器
Iterator it = books.iterator();
while (it.hasNext()) {
// it.next()方法返回的数据类型是Object类型,因此需要强制类型转换
String book = (String) it.next();
System.out.println(book);
if (book.equals("疯狂Java讲义")) {
// 从集合中删除上一次next方法返回的元素
it.remove();
}
// 对book变量赋值,不会改变集合元素本身
book = "测试字符串"; // ①
}
System.out.println(books);
}
}
>>> iterator和for遍历方法
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ArrayIterator {
public static void main(String[] args) {
List<Integer> listOfInt = new ArrayList<Integer>();
listOfInt.add(1);
listOfInt.add(2);
listOfInt.add(3);
// Iterator遍历一
Iterator<Integer> iterator = listOfInt.iterator();
while (iterator.hasNext()) {
int i = (Integer) iterator.next();
System.out.println("Iterator遍历一,"+i);
}
// Iterator遍历二
for (Iterator<Integer> it = listOfInt.iterator(); it.hasNext();) {
int i = (Integer) it.next();
System.out.println("Iterator遍历二,"+i);
}
// for循环
for (int i = 0; i < listOfInt.size(); i++) {
System.out.println("for循环,"+listOfInt.get(i));
}
// for循环加强版
for (Integer i : listOfInt) {
System.out.println("for循环加强版,"+i);
}
}
}
Java JDK提供的类都是继承自Collection的"子接口",如:List和Set。Map没有继承Collection接口,Map提供key到value的映射。
Iterator接口也是Java集合框架的成员,但它与Collection系列、Map系列的集合不一样:Collection系列集合、Map系列集合主要用于盛装其他对象,而Iterator则主要用于遍历(即迭代访问)Collection集合中的元素,Iterator对象也被称为迭代器。
Iterator接口里定义了如下4个方法:
–boolean hasNext():如果被迭代的集合还元素没有被遍历,则返回true。
–Object next():返回集合里下一个元素。
–void remove() :删除集合里上一次next方法返回的元素
–void forEachRemaining(Consumer action),这是Java 8为Iterator新增的默认方法,该方法可使用Lambda表达式来遍历集合元素。
public class TestIterator {
public static void main(String[] args) {
// 创建集合、添加元素的代码与前一个程序相同
Collection books = new HashSet();
books.add("轻量级Java EE企业应用实战");
books.add("疯狂Java讲义");
books.add("疯狂Android讲义");
// 获取books集合对应的迭代器
Iterator it = books.iterator();
while (it.hasNext()) {
// it.next()方法返回的数据类型是Object类型,因此需要强制类型转换
String book = (String) it.next();
System.out.println(book);
if (book.equals("疯狂Java讲义")) {
// 从集合中删除上一次next方法返回的元素
it.remove();
}
// 对book变量赋值,不会改变集合元素本身
book = "测试字符串"; // ①
}
System.out.println(books);
}
}
>>> iterator和for遍历方法
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ArrayIterator {
public static void main(String[] args) {
List<Integer> listOfInt = new ArrayList<Integer>();
listOfInt.add(1);
listOfInt.add(2);
listOfInt.add(3);
// Iterator遍历一
Iterator<Integer> iterator = listOfInt.iterator();
while (iterator.hasNext()) {
int i = (Integer) iterator.next();
System.out.println("Iterator遍历一,"+i);
}
// Iterator遍历二
for (Iterator<Integer> it = listOfInt.iterator(); it.hasNext();) {
int i = (Integer) it.next();
System.out.println("Iterator遍历二,"+i);
}
// for循环
for (int i = 0; i < listOfInt.size(); i++) {
System.out.println("for循环,"+listOfInt.get(i));
}
// for循环加强版
for (Integer i : listOfInt) {
System.out.println("for循环加强版,"+i);
}
}
}
相关文章推荐
- Spring Security 学习笔记-securityContext过滤器
- SSM整合环境搭建(eclipse+maven3.0.5+JDK1.6)
- eclipse关联v4源码的
- java 动态代理模式
- JAVA基础-抽象类
- java Servlet中的过滤器Filter
- java 多线程访问全局变量,值为null
- Java创建线程
- struts2文件上传
- java 代理模式
- 设计模式之享元模式
- 来段代码提提神-那些无法回避的知识点之struts权限拦截器
- Java Design Pattern
- Spring注解@Component、@Repository、@Service、@Controller区别
- JAVA环境变量
- 发送邮件,加附件
- solution to maven + lombok + eclipse
- Java运行时异常和一般异常
- java 常用五种排序
- java学习笔记(三)