精华内容
下载资源
问答
  • class ForTest{ public static void main(String[] args){ HashMaphm=new HashMap(); hm.put(1,"xxc1"); hm.put(2,"xxc2"); hm.put(3,"xxc3"); /*Sets=hm.keySet(); for(Integer i
    import java.util.*;
    class ForTest{
    	public static void main(String[] args){
    		HashMap<Integer,String>hm=new HashMap<Integer,String>();
    		hm.put(1,"xxc1");
    		hm.put(2,"xxc2");
    		hm.put(3,"xxc3");
    		/*Set<Integer>s=hm.keySet();
    		for(Integer i:s){
    			System.out.println(i+"=="+hm.get(i));
    		}*/
    		Set<Map.Entry<Integer,String>>s=hm.entrySet();
    		for(Map.Entry<Integer,String> me:s){
    			System.out.println(me.getKey()+"========"+me.getValue());
    		}
    	}
    }
    

    注意:

    1.只要是迭代器Iterator能迭代的一定能用增强For进行遍历!Map集合必须先将键或者Map.Entry键值关系存入Set集合中。

    2增强For和迭代器的区别:增强For只能获取集合里的元素,不能对集合进行操作,但是迭代器Iterator能对集合进行删除!ListIterator列表迭代器还能进行增删改查操作!

    3.迭代器对集合的操作会使原集合发生变化,而For循环是不会发生改变的,例如在增强For遍历时,将其他值的引用给了For。

    4增强For和普通For的区别:如果要打印100次Hello World 增强For是不能完成的!所以在遍历数组时,建议用传统For!


    展开全文
  • java增强for循环遍历Map集合问题

    千次阅读 2015-04-22 14:05:54
    // 增强for循环2取出Map集合数据, for(Object obj:m.entrySet()){ Map.Entry entry=(Entry) obj; String key=(String) entry.getKey(); String value=(String) entry.getValue(); System.out.println...
    package Day01;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.LinkedHashMap;
    import java.util.Map;
    import java.util.Set;
    import java.util.Map.Entry;
    
    import org.junit.Test;
    
    public class Day01 {
    
    	@Test
    	public void test1() {
    		// 使用HashMap()存入与取出顺序不一定一致。
    		Map m = new HashMap();
    		m.put("1", "aaa");
    		m.put("2", "bbb");
    		m.put("3", "ccc");
    		// 传统方式1取出Map集合数据,用keySet()封装只包含key的Set集合,然后用iterator迭代Set集合即可取出key。
    		Set keys = m.keySet();
    		Iterator it = keys.iterator();
    		while (it.hasNext()) {
    			String key = (String) it.next();
    			String value = (String) m.get(key);
    			System.out.println(key + "=" + value);
    		}
    	}
    	@Test
    	public void test2() {
    		// 使用HashMap()存入与取出顺序不一定一致。
    		Map m = new HashMap();
    		m.put("1", "aaa");
    		m.put("2", "bbb");
    		m.put("3", "ccc");
    		// 增强for循环1取出Map集合数据。
    		for(Object obj:m.keySet()){
    			String key=(String) obj;
    			String value=(String) m.get(key);
    			System.out.println(key + "=" + value);
    		}
    
    	}
    	@Test
    	public void test3() {
    		// 使用LinkedHashMap()存入与取出顺序一致。
    		Map m = new LinkedHashMap();
    		m.put("1", "aaa");
    		m.put("2", "bbb");
    		m.put("3", "ccc");
    		// 传统方式2取出Map集合数据,用entrySet()封装成键值对的Set集合,然后用iterator取出Map.Entry。然后在通过getKey()和getValue()方法取值
    		Set keys = m.entrySet();
    		Iterator iterator = keys.iterator();
    		while (iterator.hasNext()) {
    			Map.Entry entry = (Entry) iterator.next();
    			String key = (String) entry.getKey();
    			String value = (String) entry.getValue();
    			System.out.println(key + "=" + value);
    		}
    	}
    	@Test
    	public void test4() {
    		Map m = new LinkedHashMap();
    		m.put("1", "aaa");
    		m.put("2", "bbb");
    		m.put("3", "ccc");
    		// 增强for循环2取出Map集合数据,
    		for(Object obj:m.entrySet()){
    			Map.Entry entry=(Entry) obj;
    			String key=(String) entry.getKey();
    			String value=(String) entry.getValue();
    			System.out.println(key + "=" + value);
    		}
    	}
    	@Test
    	public void test5() {
    		//增强for循环只适合取数据。如果想改变数据用传统方式。
    		int arr[]={1,2,3};
    		for(int i:arr){
    			i=10;
    		}
    		System.out.println(arr[0]);//输出仍未1
    		for(int i=0;i<arr.length;i++){
    			arr[i]=10;
    		}
    		System.out.println(arr[0]);//输出均为10
    	}
    
    
    
    }
    

    展开全文
  • 首先取得Map中的数据方法如下图所示,在java普通的for循环当中,一般是按照如下图1,图2...但是今天要介绍的是使用增强for循环for each进行对Map中数据元素进行迭代。 第一种: @Test public void test() {



    首先取得Map中的数据方法如下图所示,在java普通的for循环当中,一般是按照如下图1,图2的方法,现将Map的keyset或者entrySet保存在一个set集合当中,然后对set集合使用iterator迭代器,进行迭代循环。但是今天要介绍的是使用增强for循环for each进行对Map中数据元素进行迭代。


    第一种:

    @Test
    	public void test() {
    		Map<Integer, String> map=new HashMap<Integer, String>();
    		
    		map.put(1, "this is 1");
    		map.put(2, "this is 2");
    		map.put(3, "this is 3");
    		map.put(4, "this is 4");
    		
    		for (Object obj : map.keySet()) {
    			String key= (String) obj;
    			String value = map.get(key);
    			System.out.println("key is "+key+"value is "+value);
    		}
    	}
    

    第二种:


    @Test
    	public void test2() {
    		Map<Integer, String> map=new HashMap<Integer, String>();
    		map.put(1, "this is 1");
    		map.put(2, "this is 2");
    		map.put(3, "this is 3");
    		map.put(4, "this is 4");
    		
    		for (Object obj : map.entrySet()) {
    			//将取得的map的entryset保存
    			Map.Entry entry= (Entry) obj;
    			String key=entry.getKey().toString();
    			String value=(String) entry.getValue();
    			System.out.println("key is "+key+"value is:" +value);
    			
    		}
    	}




    主要思路就是keySet属性,还有entrySet属性继承了迭代器的接口。所以只要实现了迭代器的接口的数据类型,都可以用增强for循环取除数据。虽然Map没有实现迭代器接口。但是Map中的set集合取出之后就可以迭代了。进而何以使用增强for循环了。

    下面是全部代码。

    package Demo;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Map.Entry;
    
    import org.junit.Test;
    
    public class demo {
    	@Test
    	public void test() {
    		Map<Integer, String> map=new HashMap<Integer, String>();
    		
    		map.put(1, "this is 1");
    		map.put(2, "this is 2");
    		map.put(3, "this is 3");
    		map.put(4, "this is 4");
    		
    		for (Object obj : map.keySet()) {
    			String key= (String) obj;
    			String value = map.get(key);
    			System.out.println("key is "+key+"value is "+value);
    		}
    	}
    
    	@Test
    	public void test2() {
    		Map<Integer, String> map=new HashMap<Integer, String>();
    		map.put(1, "this is 1");
    		map.put(2, "this is 2");
    		map.put(3, "this is 3");
    		map.put(4, "this is 4");
    		
    		for (Object obj : map.entrySet()) {
    			//将取得的map的entryset保存
    			Map.Entry entry= (Entry) obj;
    			String key=entry.getKey().toString();
    			String value=(String) entry.getValue();
    			System.out.println("key is "+key+"value is:" +value);
    			
    		}
    	}
    	
    }
    


    展开全文
  • 遍历MAP的四种方法(增强for循环)

    千次阅读 2017-08-10 10:05:55
    增强for循环: 设计的本意:抛弃迭代器 增强for循环只能遍历数组和实现了Iteratable接口的对象。 语法:  for(元素的类型 变量名:数组或实现了Iteratable接口的对象){  System.out.println(变量名);...遍历MAP

    增强for循环:


    设计的本意:抛弃迭代器
    增强for循环只能遍历数组和实现了Iteratable接口的对象。
    语法:
        for(元素的类型 变量名:数组或实现了Iteratable接口的对象){
        System.out.println(变量名);

        }

    增强for循环的特点:只适合取数据。要想在遍历时改元素的值,请使用传统for循环。


    遍历MAP的四种方法:

    //增强for循环
    public class Demo {
    	//传统方式遍历Map
    	@Test
    	public void test3(){
    		Map map = new LinkedHashMap();
    		map.put("a", "aaa");
    		map.put("b", "bbb");
    		map.put("c", "ccc");
    		
    		Set keys = map.keySet();
    		Iterator it = keys.iterator();
    		while(it.hasNext()){
    			String key = (String)it.next();
    			String value = (String) map.get(key);
    			System.out.println(key+"="+value);
    		}
    	}
    	
    	@Test//增强for遍历map方式一
    	public void test31(){
    		Map map = new LinkedHashMap();
    		map.put("a", "aaa");
    		map.put("b", "bbb");
    		map.put("c", "ccc");
    		
    		Set keys = map.keySet();
    		for(Object obj:keys){
    			String key = (String)obj;
    			String value = (String) map.get(key);
    			System.out.println(key+"="+value);
    		}
    		
    	}
    	//传统方式遍历Map
    	@Test
    	public void test4(){
    		Map map = new LinkedHashMap();
    		map.put("a", "aaa");
    		map.put("b", "bbb");
    		map.put("c", "ccc");
    		
    		Set me = map.entrySet();
    		Iterator it = me.iterator();
    		while(it.hasNext()){
    			Map.Entry m = (Map.Entry)it.next();
    			String key = (String) m.getKey();
    			String value = (String)m.getValue();
    			System.out.println(key+"="+value);
    		}
    		
    	}
    	@Test//增强for循环遍历map方式二
    	public void test41(){
    		Map map = new LinkedHashMap();
    		map.put("a", "aaa");
    		map.put("b", "bbb");
    		map.put("c", "ccc");
    		
    		for(Object obj:map.entrySet()){
    			Map.Entry me = (Map.Entry )obj;
    			String key = (String) me.getKey();
    			String value = (String)me.getValue();
    			System.out.println(key+"="+value);
    		}
    		
    	}
    }



    展开全文
  • Map&lt;String, Object&gt; map = new HashMap&...---------增强for遍历map---------"); for (Map.Entry&lt;String, Object&gt; entry : map.entrySet()) { System.out....
  • 【Java编程】使用增强for循环和迭代器遍历Map集合 1、通过key集合访问,对Key敢兴趣,可以访问与key对应的Value值;  for(String k:maps.keySet()){ System.out.println(k+":"+maps.get(k)); }2、...
  • package com.day15.Map; import java.util....import java.util.Map; public class MapFive {  public static void main(String[] args) {  Map<String, Integer> ma=new HashMap<>();  ...
  • import java.util.HashMap; import java.util....import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class Demo3_Iterator { public static void main(String[] args) { ...
  • JAVA使用增强for循环和迭代器遍历Map集合 1、通过key集合访问,对Key敢兴趣,可以访问与key对应的Value值;  for(String k:maps.keySet()){  System.out.println(k+":"+maps.get(k));  } 2、通过value...
  • import java.util.HashMap; import java.util....import java.util.Map; import java.util.Set; public class Demo2_Iterator { public static void main(String[] args) { Map<String,Integer> m...
  • 1、通过key集合访问,对Key敢兴趣,... for(String k:maps.keySet()){  System.out.println(k+":"+maps.get(k));  } 2、通过value集合访问,只对value值感兴趣,无法访问key值;  for(String value:maps.va
  • 遍历map

    2020-01-10 16:56:39
    本人建议不要去记太多...创建map Map<Integer,String> map = new HashMap<>(); map.put(1,"a"); map.put(2,"e"); map.put(3,"aw"); map.put(4,"u"); 第一种:思路:获取每一对Entry,再调用getK...
  • * 测试通过Iterator和增强for循环遍历Map集合 */ public class Test5 { public static void main(String[] args) { /* 1、创建多个狗狗对象 */ Dog ououDog = new Dog("欧欧", "雪娜瑞" )...
  • Java遍历Map对象的四种方式Java遍历Map对象的四种方式方法一 :这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。方法二: 在for-each循环中遍历keys或values。方法三:使用Iterator遍历...
  • 遍历map方法

    2018-03-26 11:19:57
    package test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry... * 遍历map方法 * @author 浴缸 * */ public class MapUtil { public static void ...
  • 遍历map的方式

    2019-09-04 15:25:28
    的方式存储的,那么遍历map无非是通过遍历key or value 我们根据不同的需求选择不同的遍历方式 package find; import java.util.HashMap; import java.util.Map; /** * @author foxz */ public class mapFind ...
  • JAVA Map 遍历Map 集合 map 的嵌套

    千次阅读 2017-12-21 21:43:40
    一、 Map 数据保存 是以 键值对形势 存储的(key – value) 键是唯一的(不能重复的) HashSet 和 HashMap 之间的关系 HashSet 底层实现 实际上就是一个HashMap HashSet 是依赖 HashMap 的 在向HashSet 中添加的...
  • 遍历Map和List

    千次阅读 2016-05-05 12:54:29
    遍历Map 1.用增强for循环取 既取键也取值 Map while(iter.hasNext()) { iter.next(); //System.out.println(iter.next()); }已知list长度 for(int i = 0; i (); i++)
  • 先创建一个map集合Map,String> map = new HashMap(); map.put("name","张三...第一种遍历map集合的方式 使用增强for循环,通过map.keySet();获取key值的集合,根据循环key值,找到valuefor (String s : map.keySet()) {
  • 遍历Map的六种方式

    2021-04-07 09:16:15
    该文章总结了遍历Map的六种方式,并对各个方式的遍历效率进行百万数据级别的测试,总结出开发中应该使用何种方式进行Map集合的遍历。
  • 遍历map集合

    2020-06-11 15:59:23
    1.使用keyset 2.entry对象 使用迭代器 使用增强for循环
  • 如何遍历Map,map的keySet()和EntrySet()区别 遍历map public static void main(String[] args) { // TODO Auto-generated method stub Map&lt;String, Student&gt; map = new HashMap&lt;String,...
  • 1、通过key集合访问,对Key敢兴趣,可以访问与... for(String k:maps.keySet()){ System.out.println(k+":"+maps.get(k)); } 2、通过value集合访问,只对value值敢兴趣,无法访问key值; for(String value:maps.va
  • 创建map集合并赋值 Map<Integer, String> map = new HashMap<>(); map.put(1, "a"); map.put(2, "b");... map.put(3, "c");...使用加强for进行遍历(快捷键:keys.for ,选择对应的方法回车) for (Int
  • 遍历map的方式总结

    2021-07-09 07:04:03
    1.在 for 循环中使用 entries 实现 Map遍历 for (Map.Entry<String, String> entry : map.entrySet()) { String mapKey = entry.getKey(); String mapValue = entry.getValue(); System.out.println(map...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,314
精华内容 14,125
关键字:

增强for遍历map