重温数据结构一
来源:互联网 发布:学linux能干哪些工作 编辑:程序博客网 时间:2024/04/27 04:50
数据结构
数据结构:
数据之间存在的一个或者多种的特定的关系元素的集合!
分类
根据数据对象的数据元素之间的关系,分类为逻辑结构与物理结构
逻辑结构:
1.集合结构2.线性结构3.树形结构4.图形结构
物理结构:
1.顺序存储结构: 内存地址是连续的,比如:ArrayList2.链式存储结构 内存地址不连续,可以找到下一个节点,形成链,比如:LinkedList
顺序存储ArrayList
简单看一下ArrayList的源码,里面维护了一个Object的数组,每次增加或者删除元素都要移动后面的元素!
/** * Default initial capacity. 默认数组的长度,java与Android可能会有差别 */ private static final int DEFAULT_CAPACITY = 10; /** * Shared empty array instance used for empty instances. */ private static final Object[] EMPTY_ELEMENTDATA = {}; // 维护一个数组 transient Object[] elementData; /** * The size of the ArrayList (the number of elements it contains). * * @serial */ private int size;
下面看几个主要用到的函数,增删改查:
public boolean add(E e) { // 检查容量,适当扩容 ensureCapacityInternal(size + 1); // Increments modCount!! // 给数组元素赋值 elementData[size++] = e; return true; }public E remove(int index) { //越界检查 if (index >= size) throw new IndexOutOfBoundsException(outOfBoundsMsg(index)); modCount++; E oldValue = (E) elementData[index]; //移动后面的元素 int numMoved = size - index - 1; if (numMoved > 0) System.arraycopy(elementData, index+1, elementData, index, numMoved); //置空元素,让GC回收 elementData[--size] = null; // clear to let GC do its work return oldValue; } public E get(int index) { if (index >= size) throw new IndexOutOfBoundsException(outOfBoundsMsg(index)); // 返回指定位置的元素 return (E) elementData[index]; }
大概就看到这里了!ArrayList的源码比较简单,就是操作一个成员数组!
0 0
- 重温数据结构(一)
- 重温数据结构一
- 重温数据结构一(概论)
- 【数据结构重温】哈希表
- 【数据结构重温】红黑树
- 重温数据结构二(算法)
- 重温数据结构和算法
- 数据结构--排序之重温
- 重温数据结构-排序算法
- 重温数据结构(二)
- 重温数据结构(三)
- 重温经典(一)
- 重温操算符重载(一)
- 重温数学课(一):解析几何
- 重温Java(一)
- 重温数学课(一):解析几何
- 重温Java知识(一)
- 重温Activity(一)
- codeforces 782B
- C语言 strnlen函数实现
- 【第13题】360校园招聘2015届技术类笔试题
- Android注解使用之ButterKnife 8.0注解使用介绍
- 【贪心算法】最少拦截系统
- 重温数据结构一
- CSS中的背景用法大全
- 【第14题】360校园招聘2015届技术类笔试题
- Java_HOME,classpath,path的作用及其配置
- 数组中的重复数字 の HashMap解法
- Android中RecyclerView简介、创建步骤及其Demo
- 从键盘连续输入一组数,对每一个数按位求和,输出和数最大者
- js各种验证文本框输入格式
- 种子用户