关于java的自动装箱和拆箱

来源:互联网 发布:如何测量网络成瘾 编辑:程序博客网 时间:2024/05/16 15:44

          点击此处获得原英文文档链接

          今天看泛型的时候,了解了一下jdk1.5的新特性,自动装箱和自动拆箱,以下是我对原英文文档的理解性翻译。

          任何一个java程序员都知道,你不能将一个int类型(或者其他基本类型)放入一个集合中,集合中只能装对象的引用,所以就要对基本类型int进行包装(int的包装类为Integer)。当你从一个集合中取出一个Integer对象的时候,你必须对Integer对象调用intValue()方法进行解包。这样频繁的解包和拆包让人很痛苦,也让代码显得很杂乱。而自动装箱拆箱让过程自动化,尽量减少了以上的困扰。

import java.util.*;// Prints a frequency table of the words on the command linepublic class Frequency {   public static void main(String[] args) {      Map<String, Integer> m = new TreeMap<String, Integer>();      for (String word : args) {          Integer freq = m.get(word);          m.put(word, (freq == null ? 1 : freq + 1));      }      System.out.println(m);   }}
此代码的解释是按照自己的理解写上去的,没有翻译,在TreeMap中后面要存的是对象类型,现在自动装箱将int直接转为Integer存入map中,而将数据进行累加计算的时候又将Integer转为int进行拆箱计算。若没有这一步的话我们就要繁琐的写为Integer i=new Integer(freq)进行Integer转换而相加的时候还要掉要freq.intValue()来进行拆包相加。

原创粉丝点击