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的定义

for(元素类型T 每次循环元素的名称 : 循环对象){

    //对定义的名称进行操作

 }

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

(1)数组
(2)Collection类
(3)任何实现了Iterable接口的自定义类

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

4. for-each的举例

  1. for-each遍历数组
	public static void main(String[] args) {
		String[] demo = {"a", "b", "c"};
		for (String t :demo ) {
		    System.out.println(t);
		}
	}
  1. for-each遍历List
  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 数组

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.集合

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()));
  }
}

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

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地址

实现代码如下:

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位随机数的组合
实现代码:


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);
	    }

}
  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值