赞
踩
对象数组有那些问题?普通的对象数组的最大问题在于数组中的元素个数是固定的,不能动态的扩充大小,所以最早的时候可以通过链表实现一个动态对象数组。但是这样做毕竟太复杂了,所以在 Java 中为了方便用户操作各个数据结构,所以引入了类集的概念,有时候就可以把类集称为 java 对数据结构的实现。
在整个类集中的, 这个概念是从 JDK 1.2(Java 2) 之后才正式引入的, 最早也提供了很多的操作类, 但是并没有完整的提出类集的完整概念。
类集中最大的几个操作接口:Collection、 Map、 Iterator,这三个接口为以后要使用的最重点的接口。所有的类集操作的接口或类都在 java.util 包中。
栈:又称堆栈,栈是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端称为栈顶,另一端称为栈底,不含任何数据元素的栈称为空栈。栈又称为先进后出的线性表
采用栈结构的集合,对元素的存取有如下的特点:
这里两个名词需要注意:
队列:队,队列是一种特殊的线性表,是运算受到限制的一种线性表,只允许在表的一端进行插入,而在另一端进行删除元素的线性表。队尾(rear)是允许插入的一端。队头(front)是允许删除的一端。空队列是不含元素的空表。
采用队列结构的集合,对元素的存取有如下的特点:
链表 [Linked List]:链表是由一组不必相连(内存不必相连:可以连续也可以不连续) 的内存结构(节点) ,按特定的顺序链接在一起的抽象数据类型。
class Node{
Object data;
Node next;
}
数组是一种连续存储线性结构,元素类型相同,大小相等
链表是离散存储线性结构
n 个节点离散分配,彼此通过指针相连,每个节点只有一个前驱节点,每个节点只有一个后续节点,首节点没有前驱节点,尾节点没有后续节点。
链表常用的有 3 类: 单链表、双向链表、循环链表。
简单的理解,就是一种类似于我们生活中树的结构,只不过每个结点上都最多只能有两个子结点。二叉树是每个节点最多有两个子树的树结构。顶上的叫根结点,两边被称作“左子树”和“右子树”。
class Node{
Object data;
Node left;
Node right;
}
Collection接口是在整个 Java 类集中保存单值的最大操作父接口,里面每次操作的时候都只能保存一个对象的数据。此接口定义在 java.util 包中。
public interface Collection<E> extends Iterable<E>
但是,在开发中不会直接使用 Collection 接口。而使用其操作的子接口:List、Set。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。