java 集合框架
各种西瓜
这个作者很懒,什么都没留下…
展开
-
线性表顺序存储结构(ArrayList底层实现原理)
public class ArrayList{ private Object[] elementData; private size; //初始化空表 public ArrayList(int initalCapacity){ this.elementData = new Object[initalCapacity]; } //添加 public boole原创 2017-05-11 21:01:59 · 667 阅读 · 0 评论 -
单向链表
1,若有不懂可网易云课堂李兴华老师的讲解//单向链表的基本形式:主要有内部类,私有属性的访问。和对this关键字,引用传递的理解class Produce { public static void main(String[] args) { Link link = new Link(); link.add("hello"); link.add("原创 2017-01-16 13:42:41 · 237 阅读 · 0 评论 -
LinkedList底层原理(双向链表)
public class LinkedList<E> { private Node<E> first; private Node<E> last; private int size; private class Node<E> { private Node<E> prev; private Node<E> next; E原创 2017-05-16 12:28:43 · 1486 阅读 · 1 评论 -
链式存储结构之单向链表
/** * @author Administrator 单向链表 * @param <E> */public class Link<E> { private Node<E> first;// 头节点 private Node<E> last;// 末尾节点 private int size;// 链表的长度 private static class Node<E原创 2017-05-16 12:30:45 · 238 阅读 · 0 评论 -
Vector源码分析
public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable {// 采用线性存储结构 protected Object[] elementData; // 元素的数量 protected int element原创 2017-05-16 13:36:39 · 230 阅读 · 0 评论 -
栈(经典应用逆波兰表达式)
java中栈继承了Vector,源码很简单,采用的是顺序存储结构。 实现栈:import java.util.Arrays;public class Stack { private Object[] elementData; private int size; public Stack() { this(10); } public Stack(i原创 2017-05-17 14:44:43 · 519 阅读 · 0 评论 -
队列
队列是只允许在一端进行插入操作,而在另一段进行删除操作的线性表。 插入的一段称为队尾,删除的一端称为队头。队列的顺序存储结构:采用顺序存储结构的队列 容易假溢出, 即使是循环队列也面临着大规模的移动数据的安全问题。所以队列采用链式存储结构是最好的方式。而在java中队列只是一个接口,它用LinkedList继承Queue实现了队列。public class Queue<T> { pri原创 2017-05-18 14:29:47 · 247 阅读 · 0 评论 -
hashMap原理
线性表的弊端线性表的顺序存储,占用的空间地址是连续的,查找方便,但是容易造成内存空间的浪费。插入和删除,需要大规模的移动数据,既不安全速度又慢。链式存储虽然插入删除方便但是由于其空间的不连续,查找速度慢。当我们既要对数据增删又要查询显然线性表已经不能满足我们的需求了。散列表(hashTable)散列表的使用分为两步:第一步:使用散列函数将被查找的Key值转换为数组的一个索引,理想情况下不同的key原创 2017-05-19 23:48:20 · 236 阅读 · 0 评论