Java基础增强-增强for循环,装箱,map类型的操作
2015-10-21 19:18
766 查看
</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); //装箱 Integer list.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=ccc 2=bbb 1=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只适合去数据,要修改数组或集合中的数据只能采用传统方式。相关文章推荐
- java获取webroot下面的文件路径
- Java的重写equals但不重写hashCode方法的影响
- 深入浅出Java垃圾回收机制1
- Mac下利用Eclipse和ADT插件搭建Android开发环境
- 你所不知道的Java序列化
- JAVA集合框架学习总结
- Java初学者必看
- java 冒泡排序与素数判断
- 详解Java String类
- Java 实现快速排序 递归和非递归
- [Java] Java中的可变参数方法
- Java多线程:ThreadPoolExecutor详解
- 深入理解Java的接口和抽象类
- Java中native关键字
- spring mvc的moduleattribute
- 【Java】双等号和equals的区别
- spring中常用的util
- JAVA_SE基础——44.抽象类的练习
- 凭借对KMP算法的了解,用java实现了一下,结果和java自带的字符串indexOf比,性能差了十倍。。。
- JDK/bin下工具列表说明及归纳