遍历数组:
一个栗子:
public class Test01 { public static void main(String[] args) { int[] aa = {19,92,12,03,45,22}; int[] bb = {19,90,03,25,25,48}; int[] cc = {10,10,06,10,01,02}; //普通for循环 for(int i=0;i<aa.length;i++){ System.out.println("数组aa :"+aa[i]); } //foreach循环 for(int j:bb){ System.out.println("数组bb :"+j); } //jdk自带方法 System.out.println(java.util.Arrays.toString(cc)); } }
注意:foreach循环是jdk5之后出现的;
Arrays工具类中的toString()方法是将数组转换为字符串输出。
遍历集合:
1)遍历List集合:
一个栗子:
public class Test02 { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("aa"); list.add("bb"); list.add("cc"); //普通for循环 for(int i=0;i<list.size();i++){ System.out.println("集合元素 :"+list.get(i)); } //foreach for(String s : list){ System.out.println("集合元素 :"+s); } //迭代器 Iterator it = list.iterator(); while(it.hasNext()){ System.out.println("集合元素 :"+it.next()); } } }
2)遍历Map集合:
一个栗子:
public class Test03 { public static void main(String[] args) { Map<Integer,String> map = new HashMap<Integer,String>(); map.put(1,"aaa"); map.put(2,"bbb"); map.put(3,"ccc"); //1、最常见最可取的遍历方法,适用于键值都需要的时候 for(Map.Entry<Integer, String> entry:map.entrySet()){ System.out.println("the key :"+entry.getKey()+"; the value :"+entry.getValue()); } //2、循环遍历key或value,适用于只需要map中的key或value for(Integer key:map.keySet()){ System.out.println("map 中的key :"+key); } for(String value:map.values()){ System.out.println("map 中的value:"+value); } //3、迭代器遍历 Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator(); while(it.hasNext()){ Map.Entry<Integer, String> entry = it.next(); System.out.println("the key :"+entry.getKey()+"; the value :"+entry.getValue()); } //4、遍历map中的value,但不能遍历key for(String v : map.values()){ System.out.println("map 中的value:"+v); } } }
注意:
关于迭代器遍历:虽然代码看起来冗余了一些,但迭代器遍历是老版本java中唯一遍历map的方式。而且有一个好处的是,你可以在遍历中调用iterator.remove()方法来删除这个元素。而其他方法不行,根据javadoc,如果在foreach循环中尝试使用此方法,结果是不可预测的。
关于通过键找值遍历:这种遍历方式是效率最低的一种,虽然代码看起来很清爽,所以还是尽量避免使用吧。
总结:
如果仅需要key或者value,那就使用方法2;如果你的java版本低于5,或者打算在遍历时删除元素,那就只能使用方法3;如果键值都要的话,使用方法1。