马士兵课程笔记(续6)
容器概念
? ? Java API 所提供的用于在程序中存放对象的一系列类的实例。
? ? 数组其实也是一种容器, 不过其他容器类都不用也不能指定大小。
?
容器API位于 java.util 包内;类图结构如下:?
Collection<E> 接口方法int size(); boolean isEmpty();
boolean contains(E element)//依据equals, add(...), remove(...);?void clear();?
boolean containsAll(Collection c), addAll(...), removeAll(...), retainAll(...)//保留交集;
E[] toArray(); Iterator<E>?iterator();
?
import java.util.*...Map m1 = new HashMap();m1.put("one", 1); // 并不是存在 put(Object, int) 方法,而是自动打包机制将int转换成Integer传给put方法int i = (Integer) m1.get("one"); // Integer类型的对象可以自动解包成int,但是这里是以Object类型输出的,不强制转换成Integer型就不会启用自动解包机制...
?
泛型Generic(after JDK1.5)起因:JDK1.4 以前类型不明确
装入集合的类型都被当成Object对待,从而失去自己的实际类型;从集合中取出时往往需要转型,效率低,容易出错。解决办法:在定义集合的时候同时定义集合中对象的类型
格式:Collection<E>,?Iterator<E>,?Comparator<T>?, Map<K, V>等凡是API中这样定义的接口、类;
使用:把指定的类型填进<>,见TestArgsWords.zip
优点:增强程序的可读性和稳定性
?
Summary —— 一一三六?
一个图一个类 —— java.util.Collections三个知识点增强for (不好)GenericAuto-boxing / unboxing六个接口Collection<E>Iterator<E>Set<E>List<E>Map<K, V>Comparable<T>