Java后台开发面试
来源:互联网 发布:vue.js 格式化数字 编辑:程序博客网 时间:2024/06/04 18:05
面试题:Java中for和foreach区别在哪里?什么时候用for?什么时候用foreach?
从Java 5 之后,Java提供另一种更简单的循环:foreach循环,这种循环遍历数组和集合更加简洁。使用foreach循环遍历数组和集合元组时,无须获得数组和集合的长度,无须根据索引来访问数组元素和集合元素,foreach循环会自动遍历数组和集合的每个元素。
一、常见使用方式
1. foreach遍历数组
public class ForeachTest{ public static void main(String[] args){ String[] books = {"Java","C++","C"}; for(String book:books){ System.out.println(book); } }}
2. foreach遍历List
public class ForeachTest{ public static void main(String[] args){ List<String> list = new ArrayList<String>(); list.add("Java"); list.add("C++"); list.add("C"); for(String str : list){ System.out.println(str); } }}
从上面程序可以看出,使用foreach循环遍历数组元素(或集合元素)时无须获得数组长度,也无须根据索引来访问数组元素(或集合元素)。
foreach循环和普通循环不同的是,它无须循环条件,无须循环迭代语句,这些部分都由系统来完成,foreach循环自动迭代数组(或集合)的每个元素,当每个元组都被迭代一次时,foreach循环自动结束。
二、局限性
foreach虽然能遍历数组或者集合,但是只能用来遍历,无法在遍历的过程中对数组或者集合进行修改,而for循环可以在遍历的过程中对数组或者集合进行修改。
1. 数组
public class ForeachTest{ public static void main(String[] args){ String[] books = {"Java"、"C++"、"C"}; //foreach for(String book:books){ book = "Python"; } System.out.println("foreach:" + Arrays.toString(books)); //for for(int i = 0; i < books.length ; i++){ books[i] = "Python"; } System.out.println("for:" + Arrays.toString(books)); }}
输出
foreach:[Java, C++, C]for:[Python, Python, Python]
2. 集合
public class ForeachTest{ public static void main(String[] args){ List<String> list = new ArrayList<String>(); list.add("Java"); list.add("C++"); list.add("C"); //foreach for(String str : list){ str = "Python"; } System.out.println("foreach:" + Arrays.toString(list.toArray())); //for for(int i = 0; i < list.size(); i++){ list.set(i,"Python"); } System.out.println("for:" + Arrays.toString(list.toArray())); }}
输出
foreach:[Java, C++, C]for:[Python, Python, Python]
总结如下:
1、如果只是遍历数组或者集合中的元素,用foreach循环;
2、如果要修改数组或者集合中的元素,就要用for循环。
3、foreach不能使用下标来访问每个元素,因此不能用于增加、删除等复杂操作。
4、foreach语句是for语句的特殊版本,但是foreach语句并不能完全取代for语句。
阅读全文
0 0
- Java后台开发面试
- Java后台开发面试
- 互联网公司Java后台开发面试经历
- 互联网公司Java后台开发面试
- Java后台开发面试知识点总结
- QNR(JAVA后台开发)面试题目
- 后台开发面试
- 腾讯后台开发面试
- 后台开发面试
- 后台开发面试经验
- 后台开发面试经验
- 腾讯后台开发面试
- java后台面试大全
- 网络后台开发面试题目
- 腾讯后台开发面试总结
- 腾讯后台开发面试经验
- BAT后台开发面试题库
- 后台开发面试问题整理
- 入门图形学
- Java位运算
- SQL中 EXCEPT和INTERSECT用法
- 2017 Multi-University Training Contest
- issue-17 在参数上迭代时,要多加小心
- Java后台开发面试
- JQuery 正则表达式
- vmwar中安装Linux
- VS2015 linux
- std::map 如何使用结构体作为自定义键值
- Vim 配置详解
- 个人的java面试题整理
- leetcode 7月26日 非作弊刷题
- S19文件格式简述