Java 泛型
来源:互联网 发布:决战萨斯城 知乎 编辑:程序博客网 时间:2024/05/22 13:46
Java 泛型
from the book 'Thinking in java 4th'.
容器类
Java容器类的用途是保存对象,并将其划分为两个不同的概念:
1,collection。一个独立元素的序列。 2,Map。一组成对的键值对对象,允许你使用键来查找值。
如下图所示为Java的容器简图(这里只包含了在一般情况下会碰到的接口和类),基本类型包括Map,List,Set和Queue。
Java提供了大量持有对象的方法:
1,数组将数字和对象联系起来。它保存明确的对象,查询对象时,不需要对结果做类型转换。数组一旦生成,其容量不能改变。 2,Collection保存单一的元素,而Map保存相关联的键值对。Collection和Map都可以自动调整尺寸。3,像数组一样,List也建立数字索引与对象的关联,因此数组和List都是排好序的容器。4,如果要进行大量的随机访问,就使用ArrayList,如果要经常从表中间插入和删除元素,就使用LinkedList. 5,各种Queue以及栈的行为,有LinkedList提供。 6,Map是一种将对象与对象相关联的涉及。HashMap设计用来快速访问,而TreeMap保持键始终处于排序状态。LinkedHashMap保持元素插入的顺序,但是也通过散列提供了快速访问能力。 7,Set不接受重复元素。HashSet提供了最快速的查询速度,而TreeSet保持元素处于排序状态。LinkedHashSet以插入顺序保持元素。 8,新程序不应该使用Vector,HashTable和Stack。
泛型转型
class Fruit {}class Apple extends Fruit {}class Orange extends Fruit {}A,数组,支持向上转型Fruit[] fruit = new Fruit[10];fruit[0] = new Fruit();fruit[1] = new Apple();fruit[2] = new Orange();B,列表,不支持//List<Fruit> fls = ol; //Error//List<Fruit> fls = new ArrayList<Orange>(); //ErrorC,通配符List<? extends Fruit> fln = new ArrayList<Orange>(); // okList<? extends Fruit> fl = ol; //ok
collection方法
如下是collection中包含的方法,可以用在List和Set中,
boolean add(T) 增加参数为T的参数boolean addAll(collection<? extends T>) 增加T泛型的参数void clear() 清除Boolean containsAll(collection<?>) 如果容器持有此参数的所有元素,返回真boolean isEmpty() 为空则返回真Iterator<T> iterator 返回一个Iterator<T>的迭代器boolean remove(Object) 移除实例boolean removeAll(collection<?>) 移除参数的所有元素Boolean retainAll(collection<?>) 保存参数有的元素int size() 返回容器中的数目Object[] toArray() 返回一个数组<T> T[] toArray(T[] a) 返回一个数组,该数组包含容器中的所有元素
0 0
- 【java 2】java泛型
- Java 泛型 Java generic
- Java Tutorials_Generics(java泛型)
- Java基础 Java 泛型
- java 泛型
- java泛型
- Java泛型
- Java泛型
- java泛型
- java泛型
- java泛型
- Java 泛型
- Java泛型
- Java 泛型
- JAVA 泛型
- java 泛型
- java泛型
- Java泛型
- 雷军成功踏上移动互联网游轮
- ICMP:网际控制报文协议
- 英超争冠 曼城掉队
- android控件实现抖动的效果
- Linux学习:第一章-Linux简介
- Java 泛型
- 【转】我与selerant之 劳动仲裁篇
- opencv学习-建立人脸识别分类器
- 将txt文件转化为mat文件
- 求职规划
- https通信
- 科技股阴云密布 阿里京东IPO或受影响
- HTTP Session原理
- 【转】我与selerant之 被搞篇