首页 > 代码库 > 增强for循环
增强for循环
格式:
for(数据类型 变量名 : 被遍历的集合(Collection)或者数组){
}
对集合进行遍历:只能获取集合元素。但是不能对集合进行操作。
迭代器除了遍历,还可以进行remove集合中元素的动作。如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。
传统for和高级for有什么区别呢?
for(数据类型 变量名 : 被遍历的集合(Collection)或者数组){
}
对集合进行遍历:只能获取集合元素。但是不能对集合进行操作。
迭代器除了遍历,还可以进行remove集合中元素的动作。如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。
传统for和高级for有什么区别呢?
高级for有一个局限性。必须有被遍历的目标。建议在遍历数组的时候,还是用传统for,因为传统for可以定义脚标。
代码示例:
package tan; //增强for循环 import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.Set; public class ForEachDemo { public static void main(String[] args) { ArrayList<String> al = new ArrayList<String>(); al.add("abc1"); al.add("abc2"); al.add("abc3"); //简化了书写,但底层实现仍是迭代器, //局限性:只能对集合中的元素取出而不能做修改动作,而迭代器可以删除(Remove) //如果是列表迭代器,则增删改查都是可以的 for(String s:al){ System.out.println(s); } /* Iterator<String> it = al.iterator(); while(it.hasNext()) { System.out.println(it.next()); } */ /*传统for和高级for有什么区别呢? 高级for有一个局限性。必须有被遍历的目标。 建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚标。*/ int[] arr = {3,5,1}; System.out.println("一般for循环"); for(int x=0; x<arr.length; x++) { System.out.println(arr[x]); } System.out.println("增强for循环"); for(int i : arr) { System.out.println("i:"+i); } System.out.println("keySet()方式取出集合中的元素"); HashMap<Integer, String> hm=new HashMap<Integer,String>(); hm.put(1, "A"); hm.put(2, "B"); hm.put(3, "C"); //keySet()返回Map中所包含键的Set视图。删除Set中的元素还将删除Map中相应原映射。 Set<Integer>keySet=hm.keySet(); for(Integer i:keySet){ System.out.println(i+":"+hm.get(i)); } //EnterySet()返回Map中所包含映射的Set视图。Set中的每个元素都是一个Map.Entry对象, //可以使用getKey()和getValue()方法访问后者的键元素和值元素。 System.out.println("entrySet()方式取出集合中的元素"); // Set<Map.Entry<Integer,String>> entrySet = hm.entrySet(); // for(Map.Entry<Integer,String> me : entrySet) //上述简化书写如下: for(Map.Entry<Integer, String> me:hm.entrySet()){ System.out.println(me.getKey()+"--"+me.getValue()); } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。