我是靠谱客的博主 机智热狗,这篇文章主要介绍for-each循环的认识、定义、适用对象、举例、局限性,现在分享给大家,希望可以做个参考。

文章目录

    • 1. for-each的认识
    • 2. for-each的定义
    • 3. 哪些类型的对象可以适用For-Each?
    • 4. for-each的举例
    • 5. for-each的局限性

1. for-each的认识

(1)for-each语句是Java中for-Index的一种加强,是Java 5带来的新语法糖。
(2)for-each语句是在遍历数组、集合的时候,foreach拥有不错的性能。
(3)foreach是for语句的简化,但是for-each并不能替代for循环。任何for-each都能改写为for循环,反之不行。
(4)foreach不是java中的关键字。for-each的循环对象一般是一个集合,List、ArrayList、LinkedList、Vector、数组等。

2. for-each的定义

复制代码
1
2
3
4
for(元素类型T 每次循环元素的名称 : 循环对象){     //对定义的名称进行操作  }

3. 哪些类型的对象可以适用For-Each?

(1)数组
(2)Collection类
(3)任何实现了Iterable接口的自定义类
(根据面向接口的思想,Deolin习惯把第三类对象称之为“可迭代的”对象)

第一类,第二类在实际开发中经常用到,而第三类能够适用For-Each的原因需要通过源码来进行分析。

4. for-each的举例

  1. for-each遍历数组
复制代码
1
2
3
4
5
6
7
public static void main(String[] args) { String[] demo = {"a", "b", "c"}; for (String t :demo ) { System.out.println(t); } }
  1. for-each遍历List
复制代码
1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) { List<String> list = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); for(String str : list){ System.out.println(str); } }

5. for-each的局限性

for-each虽然能遍历数组或者集合,但是只能用来遍历,无法在遍历的过程中对数组或者集合进行修改,而for循环可以在遍历的过程中对源数组或者集合进行修改。

1 数组

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class test{ public static void main(String[] args) { String[] names = {"ming", "fei"}; for (String name : names) { name = "xin"; } //foreach System.out.println("foreach:"+Arrays.toString(names)); //for for (int i = 0; i < names.length; i++) { names[i] = "xin"; } System.out.println("for:"+Arrays.toString(names)); } }

2.集合

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class test { public static void main(String[] args) { List<String> names = new ArrayList<String>(); names.add("ming"); names.add("fei"); //foreach for(String name:names){ name = "uzi"; } System.out.println(Arrays.toString(names.toArray())); //for for (int i = 0; i < names.size(); i++) { names.set(i,"uzi"); } System.out.println(Arrays.toString(names.toArray())); } }

求出一个文件的目录名以及目录总个数
实现代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
import java.io.File; public class Demo { public static void main(String[] args){ File file=new File("D:/apache-maven1"); String[] files=file.list(); for(int i=0;i<files.length;i++){ System.out.println(files[i]); } System.out.println(files.length); } }

获取本地IP地址

实现代码如下:

复制代码
1
2
3
4
5
6
7
8
9
10
import java.net.InetAddress; import java.net.UnknownHostException; public class Demo { public static void main(String[] args) throws UnknownHostException { InetAddress host = InetAddress.getLocalHost(); String ip =host.getHostAddress(); System.out.println("本机ip地址:" + ip); } }

自定义多个字符和数字,求出6位随机数的组合
实现代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.Random; public class Demo { static char[] chars = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h', 'i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; public static String getStr(int i){ StringBuffer string = new StringBuffer(); Random random = new Random(); while(i-->0){ //获取随机生成的下标 int x = random.nextInt(chars.length); string.append(chars[x]); } return string.toString(); } public static void main(String[] args) throws Exception { int i=6; String string = getStr(i); System.out.println(string); } }

最后

以上就是机智热狗最近收集整理的关于for-each循环的认识、定义、适用对象、举例、局限性的全部内容,更多相关for-each循环内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部