关于java的自动装箱和拆箱

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

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

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

import java.util.*;

// Prints a frequency table of the words on the command line
public 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()来进行拆包相加。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值