Java数据结构.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
hasNext();判断集合中的元素是否遍历完毕。 next():返回下一个元素。 romeve():从集合中删除一个由next()方法返回的元素。 Collection接口的iterator()返回一个包含集合一个 Iterator对象。
10.1 概述
List接口
List是有序的Collection,使用此接口能够精确的控 制每个元素插入的位置。可以使用索引(元素在List中 的位置,类似于数组下标)来访问List中的元素,这类 似于Java的数组。另外,List允许有相同的元素。
10.1 概述
public interface Collection { //返回集合中的元素个数 int size(); //判集合是否为空 boolean isEmpty(); //判一个对象是否包含在集合中 boolean contains(Object o); //返回集合的迭代器 Iterator iterator(); //将集合中的所有元素存入一个数组中返回 Object[] toArray(); //将集合中的元素存入数组中返回 Object[] toArray(Object a[]);
10.1 概述
//清空集合 void clear(); //比较集合与对象o是否相等 boolean equals(Object o); //返回对象的hash码 int hashCode(); }
10.1 概述
Iterator接口 Iterator接口隐藏底层集合的数据结构,向客户程
序提供了遍历各种类型的集合的统一接口。Iterator接 口中声明了如下方法:
除了具有Collection接口必备的iterator()方法外, List还提供一个listIterator()方法,返回一个ListIterator 接口,和标准的Iterator接口相比,ListIterator多了一 些add()之类的方法,允许添加,删除,设定元素,还 能向前或向后遍历。
实现List接口的常用类有LinkedList,ArrayList, Vector和Stack。
10.1 概述
//将对象o添加到集合中 boolean add(Object o); //从集合中删去对象o boolean remove(Object o); //判本集合是否包含集合c boolean containsAll(Collection c); //将集合c中的所有元素添加到本集合中 boolean addAll(Collection c); //删除所有包含在集合c中的元素 boolean removeAll(Collection c); //删除没有包含在集合c中的元素 boolean retainAll(Collection c);
Set接口的主要实现类有:TreeSet和HashSet。
10.1 概述
Map接口 Map没有继承Collection接口,Map提供key到value
的映射。一个Map中不能包含相同的key,每个key只能 映射一个value。放入Map中的自定义类的对象,需要 重写equals() 。
实现Map接口的主要类有:HashMap和TreeMap。
第10章 Java数据结构
10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8
概述 链表 栈 向量 树集 树映射 散列集 散列表
10.1 概述
在Java语言的标准类库中提供了丰富的数据结构接 口和类,如集合、列表和映射,使得人们可以很轻松地 在程序中操纵各种过去看起来比较复杂的数据结构。
10.1 概述
Collection接口 Collection是最基本的集合接口,一个Collection
代表一组Object,即Collection的元素(Elements)。 Java SDK不提供直接实现自Collection的类,Java SDK提供的类都是实现自Collection的“子接口”如 List和Set。
public boolean add(Object element) 向链表末尾添加一个新 的节点,该节点中的数据是参数elememt指定的对象。 public void add(int index ,Object element) 向链表的指定位 置添加一个新的节点,该节点中的数据是参数elememt指定 的对象。 public void addFirst(Object element) 向链表的头添加新节 点,该节点中的数据是参数elememt指定的对象的引用。 public void addLast(Object element) 向链表的末尾添加新 节点,该节点中的数据是参数elememt指定的对象。 public void clear() 删除链表的所有节点,使当前链表成为 空链表。
10.2.1 LinkedList类中的常用方法
10.2 链表(LinkedList)
LinkedList类实现了List接口。 链表是由若干个称作节点的对象组成的一种数据结
构,每个节点含有一个数据和下一个节点的引用 (单链表),或含有一个数据并含有上一个节点的 引用和下一个节点的引用(双链表)。
10.2.1 LinkedList类中的常用方法
所有实现Collection接口的类都必须提供两个标准 的构造方法:无参数的构造方法用于创建一个空的 Collection,有一个Collection参数的构造方法用于创 建一个新的Collection,这个新的Collection与传入的 Collection有相同的元素。后一个构造方法允许用户复 制一个种不包含重复的元素的Collection,即任
意的两个元素e1和e2都有e1.equals(e2)=false。因此, Set的构造函数有一个约束条件,传入的Collection参数 不能包含重复的元素。
放入Set中的自定义类的对象,需要有判断是否重复 的方法。
10.1 概述
List接口
List是有序的Collection,使用此接口能够精确的控 制每个元素插入的位置。可以使用索引(元素在List中 的位置,类似于数组下标)来访问List中的元素,这类 似于Java的数组。另外,List允许有相同的元素。
10.1 概述
public interface Collection { //返回集合中的元素个数 int size(); //判集合是否为空 boolean isEmpty(); //判一个对象是否包含在集合中 boolean contains(Object o); //返回集合的迭代器 Iterator iterator(); //将集合中的所有元素存入一个数组中返回 Object[] toArray(); //将集合中的元素存入数组中返回 Object[] toArray(Object a[]);
10.1 概述
//清空集合 void clear(); //比较集合与对象o是否相等 boolean equals(Object o); //返回对象的hash码 int hashCode(); }
10.1 概述
Iterator接口 Iterator接口隐藏底层集合的数据结构,向客户程
序提供了遍历各种类型的集合的统一接口。Iterator接 口中声明了如下方法:
除了具有Collection接口必备的iterator()方法外, List还提供一个listIterator()方法,返回一个ListIterator 接口,和标准的Iterator接口相比,ListIterator多了一 些add()之类的方法,允许添加,删除,设定元素,还 能向前或向后遍历。
实现List接口的常用类有LinkedList,ArrayList, Vector和Stack。
10.1 概述
//将对象o添加到集合中 boolean add(Object o); //从集合中删去对象o boolean remove(Object o); //判本集合是否包含集合c boolean containsAll(Collection c); //将集合c中的所有元素添加到本集合中 boolean addAll(Collection c); //删除所有包含在集合c中的元素 boolean removeAll(Collection c); //删除没有包含在集合c中的元素 boolean retainAll(Collection c);
Set接口的主要实现类有:TreeSet和HashSet。
10.1 概述
Map接口 Map没有继承Collection接口,Map提供key到value
的映射。一个Map中不能包含相同的key,每个key只能 映射一个value。放入Map中的自定义类的对象,需要 重写equals() 。
实现Map接口的主要类有:HashMap和TreeMap。
第10章 Java数据结构
10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8
概述 链表 栈 向量 树集 树映射 散列集 散列表
10.1 概述
在Java语言的标准类库中提供了丰富的数据结构接 口和类,如集合、列表和映射,使得人们可以很轻松地 在程序中操纵各种过去看起来比较复杂的数据结构。
10.1 概述
Collection接口 Collection是最基本的集合接口,一个Collection
代表一组Object,即Collection的元素(Elements)。 Java SDK不提供直接实现自Collection的类,Java SDK提供的类都是实现自Collection的“子接口”如 List和Set。
public boolean add(Object element) 向链表末尾添加一个新 的节点,该节点中的数据是参数elememt指定的对象。 public void add(int index ,Object element) 向链表的指定位 置添加一个新的节点,该节点中的数据是参数elememt指定 的对象。 public void addFirst(Object element) 向链表的头添加新节 点,该节点中的数据是参数elememt指定的对象的引用。 public void addLast(Object element) 向链表的末尾添加新 节点,该节点中的数据是参数elememt指定的对象。 public void clear() 删除链表的所有节点,使当前链表成为 空链表。
10.2.1 LinkedList类中的常用方法
10.2 链表(LinkedList)
LinkedList类实现了List接口。 链表是由若干个称作节点的对象组成的一种数据结
构,每个节点含有一个数据和下一个节点的引用 (单链表),或含有一个数据并含有上一个节点的 引用和下一个节点的引用(双链表)。
10.2.1 LinkedList类中的常用方法
所有实现Collection接口的类都必须提供两个标准 的构造方法:无参数的构造方法用于创建一个空的 Collection,有一个Collection参数的构造方法用于创 建一个新的Collection,这个新的Collection与传入的 Collection有相同的元素。后一个构造方法允许用户复 制一个种不包含重复的元素的Collection,即任
意的两个元素e1和e2都有e1.equals(e2)=false。因此, Set的构造函数有一个约束条件,传入的Collection参数 不能包含重复的元素。
放入Set中的自定义类的对象,需要有判断是否重复 的方法。