在数据处理时经常需要用到数据结构,数据结构涉及:队列、栈、链表、线性表、树、图、排序、查找等内容
java中提供一些类与接口来处理数据,对应某些数据结构,象栈、链表、哈希表等都有对应的类
java中有一个集合(collection)接口,集合可视为一种数据结构
Set(集)和List(列表)均继承该接口
Set :表示无重复元素的元素集合;两个包含相同对象的Set 对象可视为相等。
HashSet(哈希集)实现了Set接口
SortedSet(有序集)继承了Set接口,TreeSet实现了SortedSet接口
List:列表是一种有序集合,也称为序列;列表具有索引,表示元素在列表中的位置。
ArrayList、Vector、LinkedList实现List接口
上面三个类都是同步的(线程安全)
Stack(栈)类:后进先出。push()进和pop()出
Map(映射)接口:键值对集合
HashMap实现Map接口,不是同步的(不是线程安全的),而且不接受null值
SortedMap接口继承Map接口,是有序的
Hashtable类继承Dictionary:作为键的对象必须实现hashcode()和equals()才能成功存储。
Iterator:迭代器,用于迭代上述的集合
ListIterator:列表迭代器
Enumeration接口:用于遍历一个集合的所有元素
Comparator接口:用于指定集合的元素排序顺序
泛型:
泛型是jdk1.5后引入的
用于分析、限制集合中元素的类型,例如List<String> alist= new ArrayList<String>(); // 限制该数组列表元素需为String对象
好处:
格式 : 数据类型 <类型参数>
例如:
public class ArrayList<E>{
boolean add(E e) {…}
E get(int index){…}
}
public< T>T fun(T t){ // 可以接收任意类型的数据作为参数
return t ; // 直接把参数返回
}
类型通配符?
Info<?> temp //可以接收任意的泛型对象
另:
enum(枚举)是JavaEE5.0之后被加入进来,它可以有自己的变量、方法,或实现一个或多个接口
enum Size{//代表服务的尺码
S,M,L,XL,XXL,XXXL;
}