您的位置:首页 > 编程语言 > Java开发

javase重新开始系列之集合与泛型

2016-08-11 11:11 183 查看
在数据处理时经常需要用到数据结构,数据结构涉及:队列、栈、链表、线性表、树、图、排序、查找等内容

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对象

好处:

通过编译检查存储的数据是否正确
减少强制转换

限制:

不能是简单类型(需使用对应的包装类,借由java的自动装箱/拆箱)
减少强制类型    

泛型类:由类型参数修饰的类称为泛型类

格式 : 数据类型 <类型参数>
例如:

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之后被加入进来,它可以有自己的变量、方法,或实现一个或多个接口

它不能有public的构造方法,可保证客户代码没有办法新建一个enum实例.
所有的枚举都是public,static,final的。注意这一点只针对枚举值。
Enum默认实现了java.lang.Comparable接口。
Enum覆载了toString方法,因此调用Color.Blue.toString()默认返回字符串 “Blue”。
Enum提供了一个valueOf方法,它和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue
Enum提供了values方法,可遍历所有的枚举值。
Enum有一个oridinal方法,这个方法返回枚举值在枚举类中的顺序.
具体写法:

enum Size{//代表服务的尺码

  S,M,L,XL,XXL,XXXL;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: