数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据结构是一个二元组,记为:data_structure=(D,S)。其中D味数据元素的集合,S是D上关系的集合。数据元素相互之间的关系称为结构。根据数据元素之间关系的不同特性,通常分为以下四类基本结构:
集合:数据元素同属于一个集合。
线性结构:数据元素间存在一对一的关系。
树形结构:结构中元素间是一对多的关系。
图(网)状结构:结构中元素间是多对多的关系。
数据的逻辑结构和物理结构:
逻辑结构:数据元素之间存在的关系(逻辑关系)。
物理结构:数据结构在计算机中的表示。
一种逻辑结构可映像成不同的存储结构:顺序存储结构和非顺序存储结构(链式存储结构和散列结构)。
Java语言类库提供了不少接口,其中有很多事关于数据结构的。所谓数据结构的接口,就是规定此种数据结构如何存储数据。下面用实例来熟悉ArrayList数据结构接口的实现。
import java.util.ArrayList;
public class ArraylistTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//ArrayList al=new ArrayList();
ArrayList<String> al=new ArrayList<String>();
al.add("anson");
al.add("John");
al.add("Tina");
for(int i=0;i<al.size();i++)
{
System.out.println(al.get(i));
}
}
}
Collection集合接口与Iterator迭代器接口
Collection集合接口
Collection接口是数据集合接口,它位于数据结构API的最上部。构成Collection的单位,被称为元素。接口提供了添加、删除元素等管理数据的功能。根据数据管理的方法不同,可将Collection接口分成为3个部分,分别是Map接口、Set接口、List接口。
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行,一些能排序而另一些不行。Java SDK不提供直接继承自Collection类,Java SDK提供的类都继承自Collection的子接口,如List和Set.
所有实现Collection接口的类都必须提供两个标准的构造函数:
(1)无参数的构造函数,用于创建一个空的Collection。
(2)带Collection参数的构造函数,用于创建一个新的Collection。这个新的Collection与传入的Collection拥有相同的元素。
如何遍历Collection中的每一个元素?不论Collection的实际类型如何,它都支持iterator()方法,该方法返回迭代子。使用该迭代子即可访问Collection中的每一个元素。方法典型用法如下:
Interator it=collection.interator(); //获得一个迭代子
while(it.hasNext())
{
Object obj=it.next(); //得到下一个元素
}
List链表接口和Set接口
List接口
List接口是有序的Collection,使用此接口能够精确地控制每个元素插入的位置。用户能够使用索引来访问List中的元素。与下面所提到的Set不同,List允许有相同的元素。