Java基础增强-增强for循环,装箱,map类型的操作

来源:互联网 发布:中国 期刊 数据库 编辑:程序博客网 时间:2024/06/04 19:35

</pre>1.自动装箱/拆箱</h2><div>装箱:把一个基本数据类型直接赋给对应的包装类变量, 或者赋给 Object 类型的变量。</div><div>拆箱:把包装类对象直接赋给一个对应的基本类型变量。</div><div><pre name="code" class="java">Integer i = 1;  //装箱   Integer i = new Integer(1);int j = i;  //折箱//典型应用List list = new ArrayList();list.add(1);   //装箱  Integerlist.add(2);Iterator it = list.iterator();while(it.hasNext()){int k = (Integer)it.next();  //折箱}

2.增强for循环

增强for循环只能用在数组、或实现Iterator接口的集合类上

  • 数组实例:
@Test   public void test1(){      int arr[] = {1,2,3};      for (int num : arr){         System.out.println(num);      }   }

  • 带有iterator接口的类实例:
   @Test   public void test2(){      List list = new ArrayList();      list.add(1);      list.add(2);      list.add(3);      for(Object obj:list){         int i = (Integer) obj;         System.out.println(i);      }   }

  • map的操作实例(map中是没有iterator接口的):

传统方式1:

@Test   public void test3(){      Map map = new HashMap();      map.put("3","ccc");      map.put("2","bbb");      map.put("1","aaa");      Set set = map.keySet();      Iterator iterator = set.iterator();      while (iterator.hasNext()){         String key = (String) iterator.next();         String value = (String) map.get(key);         System.out.println(key + "=" +value);      }   }
输出结果:3=ccc2=bbb1=aaa
输出结果不按顺序是由于:采用了HashMap(),如果想按顺序输出应采用LinkedHashMap()

传统方式2:


 @Test   public void test4(){      Map map = new HashMap();      map.put("3","ccc");      map.put("2","bbb");      map.put("1","aaa");      //传统方式2      Set set = map.entrySet();      Iterator iterator = set.iterator();      while (iterator.hasNext()){         Map.Entry entry = (Map.Entry) iterator.next();         String key = (String) entry.getKey();         String value = (String) entry.getValue();         System.out.println(key + "=" + value);      }   }

传统方式1for增强:

   @Test   public void test5(){      Map map = new HashMap();      map.put("3","ccc");      map.put("2","bbb");      map.put("1","aaa");      //传统方式1for增强      for (Object obj:map.keySet()){         String key = (String) obj;         String value = (String) map.get(obj);         System.out.println(key + "=" +value);      }   }

传统方式2for增强:

   @Test   public void test6(){      Map map = new HashMap();      map.put("3","ccc");      map.put("2","bbb");      map.put("1","aaa");      //传统方式2for增强      for (Object obj:map.entrySet()){         Map.Entry entry = (Map.Entry) obj;         String key = (String) entry.getKey();         String value = (String) entry.getValue();         System.out.println(key + "=" + value);      }   }

增强for的注意事项:

增强for只适合去数据,要修改数组或集合中的数据只能采用传统方式。






1 0