本日志写一些关于JDK1.5特性.今天先写for循环增强,随后慢慢增加其他特性
关于for循环增强这一点,其实最主要的本质就是为了删除Iterator迭代器的使用.增强for循环只能用在数组、或实现Iterable接口的子类上
ps:for循环增强对赋值是不管用的,只用来输出值(重点,大多数的人很容易混淆),如果真需要赋值,还是要用传统的for循环
对于for循环增强,无非也就是数组,List集合,Map集合之间使用,如果学习了这特性可以提高工作效率
package cn.itcast.foreach;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import org.junit.Test;
public class demo3_3 {
/*
首先我们来讲数组的循环
*/
@Test
public void test1(){
int arr[]={1,2,3,4,5};
//这是传统意义上的输出数组中的每个值
for(int i=0;i<arr.length;i++){
System.out.println(arr);
}
/*而下面是使用我们的for循环增强
for循环增强的使用语法
for(1.变量类型 变量 :2.需迭代的数组或集合)
}
1.是你需要迭代的数组或集合里那个值的变量类型,下面就是int类型
2.是你需要迭代的数组或集合 而下面就是前面定义的arr数组
ps:在此已经说明for循环的使用语法,下面则不再次具体说明使用的语法
*/
for(int i:arr){
System.out.println(i);
}
}
@Test
public void test2(){
List list=new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
/*
正常的情况下,集合都会使用Iterator进行迭代,然后使用hasNext和next
*/
Iterator it=list.iterator();
while(it.hasNext()){
int i=(Integer)it.next();
System.out.println(i);
}
for(Object obj:list){
System.out.println(obj);
}
}
@Test //传统的map集合1
public void test3(){
Map map=new LinkedHashMap();
map.put("1", "aaaa");
map.put("2", "bbbb");
map.put("3", "cccc");
map.put("4", "dddd");
Set set=map.keySet();
Iterator it=set.iterator();
while(it.hasNext()){
String key=(String) it.next();
String value=(String) map.get(key);
System.out.println(key + "=" + value);
}
}
@Test //增强for循环的map集合1
public void test4(){
Map map=new LinkedHashMap();
map.put("1", "aaaa");
map.put("2", "bbbb");
map.put("3", "cccc");
map.put("4", "dddd");
Set set=map.keySet();
for(Object obj:set){
String key=(String) obj;
String value=(String) map.get(key);
System.out.println(key + "=" + value);
}
}
@Test
public void test5(){
Map map=new LinkedHashMap();
map.put("1", "aaaa");
map.put("2", "bbbb");
map.put("3", "cccc");
map.put("4", "dddd");
Set set=map.entrySet();
Iterator it=set.iterator();
while(it.hasNext()){
Map.Entry me=(Entry) it.next();
String keys=(String) me.getKey();
String value=(String) me.getValue();
System.out.println(keys + "=" + value);
}
}
@Test
public void test6(){
Map map=new LinkedHashMap();
map.put("1", "aaaa");
map.put("2", "bbbb");
map.put("3", "cccc");
map.put("4", "dddd");
Set set=map.entrySet();
for(Object obj:set){
Map.Entry me=(Entry) obj;
String keys=(String) me.getKey();
String value=(String) me.getValue();
System.out.println(keys + "=" + value);
}
}
} |