容器
容器API 位于 java.util包内
结构为:
其中Collection接口定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式
Set:数据对象没有顺序,不可重复
List:数据对象有顺序,可以重复
Map接口定义了存储 键值对的方法
Collection接口
方法举例:
问题:
原因:
<1>当容器类对象再调用remove、contains等方法时,需要比较两个对象是否相等,这会涉及类型的equals方法
和hashCode方法。
<2>对于自定义类需要重写equals方法和hashCode方法,以实现自定义对象的相等机制。
<3>相等的对象应具有想等的hashCode
Iterator接口
<1>所有实现Collection接口的容器都有一个iterator方法用以返回一个实现了Iterator接口的对象
<2>Iterator对象称为迭代器,用来方便实现容器元素的遍历操作
<3>Iterator接口定义了如下方法:
方法举例<1>:
方法举例<2>:
Set接口
<1>Set接口是Collection的子接口,没有实现其他方法,但实现Set接口的容器类中的元素是没有顺序,不重复的。
<2>Set容器可以与数学中的集合的概念相对应
<3>API中提供的Set容易有HashSet和TreeSet
方法举例<1>:
方法举例<2>:
List接口
<1>list接口是Collection接口的子接口,list容器中的元素是可以重复并且有顺序的。
<2>list容器中的元素都有一个整数型序号记载其在容器中的位置,可以通过序号存取容器中的元素。
<3>API中实现List容器的有ArrayList和LinkedList等
方法举例:
常用算法:
常用算法举例:
Comparable接口
<1>所有可以‘排序’的类都实现了java.lang.Comparable接口
<2>接口只有一个方法 public int compareTo(Object obj);
<3>该方法:
返回 0 表示 this == obj;
返回正数 表示 this > obj;
返回负数 表示 this < obj;
<4>实现Comparable接口的类通过compareTo方法从而确定该类的排序方式。
举例:
Map接口
<1>实现Map接口用了存储键值对
<2>Map接口的实现类有HashMap和TreeMap
<3>键值不能重复
方法举例: