文档详情

Java基础复习笔记04数据结构线性表.doc

发布:2015-09-17约1.09万字共16页下载文档
文本预览下载声明
Java基础复习笔记04数据结构-线性表 刘岩 Email:suhuanzheng7784877@163.com 线性表 线性表是数据结构的一种逻辑结构,其实所有的逻辑数据结构都可以用2类物理实现方式去实现,一个是物理存储连续的顺序结构,另一个就是物理存储不连续的链式结构。线性表是指有n个元素组成的有序序列,这n个元素具有相同的结构。 线性表的操作 线性表的主要操作是增加元素、删除索引处元素、在索引处添加元素、查找索引处元素、替换索引处元素、清空所有元素 看如下代码 package dateStructer.list; /** * 自实现的arrayList * @author liuyan * * @param E */ public class MyArrayListE implements ListE { //默认的数组长度 private final int DefSize = 16; //临时变量数组 private Object[] objects; //记录实实在在的元素个数 private int elementSize; public MyArrayList() { objects = new Object[DefSize]; } /** * 增加元素,实际上就是往最后一位出入数据 */ @Override public boolean add(E e) { add(elementSize, e); return true; } /** * 按位索引插入元素 */ @Override public void add(int index, E element) { if (index == elementSize) { objects[index] = element; elementSize++; return; } for (int i = elementSize - 1; i = 0; i--) { if (i == index) { int movedSize = elementSize - i - 1; System.arraycopy(objects, index + 1, objects, index, movedSize); objects[index] = element; elementSize++; } } } /** * 清除所有元素 */ @Override public void clear() { for (int i = 0; i elementSize; i++) { objects[i] = 0; } elementSize = 0; } /** * 判断集合是否包含了某个元素 */ @Override public boolean contains(Object o) { for (Object object : objects) { if (object != null object.equals(o)) { return true; } } return false; } /** * 获得某位置索引的元素 */ @Override public E get(int index) { for (int i = 0; i elementSize; i++) { if (i == index) { return (E) objects[index]; } } return null; } /** * 实现元素定位 */ @Override public int indexOf(Object o) { for (int i = 0; i elementSize; i++) { if (o.equals(objects[i])) { return i; } } return -1; } /** * 是否是空集合 */ @Override public boolean isEmpty() { if (elementSize == 0) { return true; } return false; } @Override public int lastIndexOf(Object o) { if (objects == null || objects.length == 0)
显示全部
相似文档