java容器

来源:互联网 发布:招商局集团 知乎 编辑:程序博客网 时间:2024/04/30 10:11

 java容器概念

javaAPI所提供的一些接口,实现这些接口的类的实例,用于程序中存放对象。

好处:当需要空间的时候会自动增长,不需要的时候就会自动的释放。

 

java容器API的结构图

 

Collection接口定义了存取一组对象的方法,其子接口SetList分别定义了存储方法。

 

Set接口类似集合,没有顺序,不可以重复。

List接口有顺序,可以重复(重复是指两个对象equals)。

Map接口定义了存储“键(key-值(vlaue)映射对”的方法。

 

Collection中的方法

 

 

在调用removecontains等方法需要比较对象是否相等,这会涉及到equals方法和hashCode方法:对于自定义的类型需要重写equalshashCode方法以实现自定义的对象相等规则。相等的对象应该具有相等的hash codes

 

 

Iterator接口

我们可以看到,所有实现了Collection接口的容器类都有一个iterator方法,返回了一个Iterator接口的对象。

 

Iterator对象称为迭代器,用以方便的实现对容器内元素的遍历操作。

 

Iterator接口定义了如下方法:

BooleanhasNext() 判断游标右边是否还有元素。

Object next();返回游标右边的元素并将游标移动到下一个位置。

Void remove();删除游标左边的元素,在执行完next之后该操只能执行一次。

 

Set接口

Set接口是Collection子接口,Set接口没有提供额外的方法,但实现Set接口的容器类中的元素是没有顺序的,而且不可重复。

 

set与数学中的集合相对应。

 

HashSetTreeSet等。

List接口

List接口是Collection的子接口,实现List接口的容器中的元素是有序的,而且是可以重复的。

 

List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号来存取容器中的元素。

 

List常用方法:

 

List容器类:ArrayListLinkedList类。

读的效率和改的效率:

Array读快改慢。

Linked改快读慢。

Hash两者之间。

 

Compare接口

确定容器中对象的“大小”和顺序?

 

所有可以排序的类都实现java.lang.Comparable接口,这个接口中只有一个方法:publicintcompareTo(Object obj) 返回值0,正数,负数。

 

Map接口

实现Map接口的类用来存储键--值对。

Map接口实现类有HashMapTreeMap等。

 

Map类中存储的键值对通过键来标识,所以键值不能重复。