JDK 1.5 特性使用实例3--AutoBoxing
2004-10-10 11:43
645 查看
package maoxiang.examples.jdk15;
import java.util.AbstractList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
/**
* @author 毛翔
*
* box 将primitive 类型转换成复合对象 ,如将int 转换成Integer
* unbox 将复合对象转换成primitive Integer.intValue()
*/
public class AutoBoxing {
public static void main(String[] args) {
AutoBoxing test = new AutoBoxing();
test.Test1();
}
public void Test1() {
String[] args = new String[] { "1", "2", "3", "4", "5", "6", "7", "8" };
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);
}
// List adapter for primitive int array
public static List<Integer> asList(final int[] a) {
return new AbstractList<Integer>() {
public Integer get(int i) {
return a[i];
}
// Throws NullPointerException if val == null
public Integer set(int i, Integer val) {
Integer oldVal = a[i];
a[i] = val;
return oldVal;
}
public int size() {
return a.length;
}
};
}
}
import java.util.AbstractList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
/**
* @author 毛翔
*
* box 将primitive 类型转换成复合对象 ,如将int 转换成Integer
* unbox 将复合对象转换成primitive Integer.intValue()
*/
public class AutoBoxing {
public static void main(String[] args) {
AutoBoxing test = new AutoBoxing();
test.Test1();
}
public void Test1() {
String[] args = new String[] { "1", "2", "3", "4", "5", "6", "7", "8" };
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);
}
// List adapter for primitive int array
public static List<Integer> asList(final int[] a) {
return new AbstractList<Integer>() {
public Integer get(int i) {
return a[i];
}
// Throws NullPointerException if val == null
public Integer set(int i, Integer val) {
Integer oldVal = a[i];
a[i] = val;
return oldVal;
}
public int size() {
return a.length;
}
};
}
}
相关文章推荐
- JDK 1.5 特性使用实例5--metadata
- JDK 1.5 特性使用实例6--staticimport
- JDK 1.5 特性使用实例7--运行外部程序
- JDK 1.5 特性使用实例1--Generics
- JDK 1.5 特性使用实例2--Varargs
- JDK 1.5 特性使用实例4--Enum
- java基础之jdk1.5的几个新特性及若干类的使用
- JDK 1.5 新功能使用实例之Generics (转)
- Eclipse Europa无法使用jdk 1.5特性
- jdk1.5新特性4之自动装箱和自动拆箱与享元模式
- Java JDK1.5、1.6、1.7新特性整理
- JDK1.5新特性
- 黑马程序员——多个生产者,多个消费者 signalAll() JDK1.5线程新特性
- JDK1.5 与 JDK1.6的新特性
- jdK1.5 新特性
- Spring事务传播特性实例解析(以及如何使用注解形式事务)
- 总结:JDK1.5-JDK1.8各个新特性
- 黑马程序员:jdk1.5新特性4(注解泛型)
- 新特性总结-JDK1.5
- JDK 1.5引入的新特性 -- 泛型