java再谈for

一:使用的形式

1.遍历数组的传统方式

/* 建立一个数组 */
 int[] integers = {1234};
 /* 开始遍历 */
 for (int j = 0; j < integers.length; j++) {
     int i = integers[j];
     System.out.println(i);
 }

2.  普通循环             

                for(;;)//空循环体无限循环
  System.out.println("fds");


2.遍历集合对象的传统方式

  // 建立一个Collection 
  String[] strings = {"A","B","C","D"};
  Collection stringList = java.util.Arrays.asList(strings);
   //开始遍历 
  for (Iterator itr =stringList.iterator();itr.hasNext();){
      Object str =itr.next();
      System.out.println(str);
  }


3.而在Java语言的最新版本――J2SE 1.5中,引入了另一种形式的for循环。借助这种形式的for循环,现在可以用一种更简单地方式来进行遍历的工作。

遍历数组的简单方式

 /* 建立一个数组 */
 int[] integers = {1234};

 /* 开始遍历 */
 for (int i : integers) {
     System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */
 }

这里所用的for循环,会在编译期间被看成是这样的形式:

5:遍历数组集合的简单方式的等价代码

/* 建立一个数组 */
 int[] integers = {1234};

 /* 开始遍历 */
 for (int 变量名甲 = 0; 变量名甲 < integers.length; 变量名甲++) {
     System.out.println(integers[变量名甲]); /* 依次输出“1”、“2”、“3”、“4” */
 }
 /* 建立一个Collection */
  String[] strings = {"A","B","C","D"};
  Collection list = java.util.Arrays.asList(strings);


  /* 开始遍历 */
  for (Object str : list) {
      System.out.println(str); /* 依次输出“A”、“B”、“C”、“D” */
  }


6.允许修改状态

  Random[] randoms = new Random[]{new Random(3), new Random(4), new Random(5)};
  for (final Random r : randoms) {
  //System.out.println();
      r.setSeed(4); /*将所有Random对象设成使用相同的种子 *,本来上面初始化种子不一样
     
      //返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
       /* 种子相同,结果也相同 */
      System.out.println(r.nextLong());
  }

循环变量的类型可以是要被遍历的对象中的元素的上级类型。例如,用int型的循环变量来遍历一个byte[]型的数组,用Object型的循环变量来遍历一个Collection< String>(全部元素都是String的Collection)等。


二: 类型相容问题

1.使用和被遍历的对象元素相同类型的循环变量

int[] integers = {1234};
 for (int i : integers) {
     System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */
 }
Collection< String> strings = new ArrayList< String>();
strings.add("A");
strings.add("B");
strings.add("C");
strings.add("D");
for (String str : strings) {//这里的str不能是int型
System.out.println(str); /* 依次输出“A”、“B”、“C”、“D” */
}
 2.循环变量的类型可以是要被遍历的对象中的元素的上级类型。例如,用int型的循环变量来遍历一个byte[]型的数组,用Object型的循环变量来遍历一个Collection< String>(全部元素都是String的Collection)等。

  byte[] integers = {1, 2, 3,4};
	   for (int i : integers) {
	       System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */
	   }
Collection< String> strings = new ArrayList< String>();
	   strings.add("A");
	   strings.add("B");
	   strings.add("C");
	   strings.add("D");
	   for (Object str : strings) {//这里的str不能是int型
	   System.out.println(str); /* 依次输出“A”、“B”、“C”、“D” */
	   }

3.使用能和要被遍历的对象中的元素的类型之间自动转换的类型的循环变量

int[] integers = {1, 2, 3, 4};
for (Integer i : integers) {
System.out.println(i); /* 依次输出“1”、“2”、“3”、“4” */
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值