
数据结构
Allen-Han
talk is cheap
展开
-
总结:HashMap的写入和读取步骤分…
写入:put(K key, Vvalue): (1)、判断key是否为空:为空,把Value存入table[0]的位置;不为空,转向(2)(2)、把key值hash,得到此hash结果在map中的位置i(3)、查看当前map中位置i是否已经存在对象:存在,转向(4);不存在,转向(5)(4)、遍历这些已经存在的对象,看是否存在相同的key值:存在,用Value替换OldV原创 2016-10-19 14:56:26 · 2159 阅读 · 0 评论 -
ArrayList原理
add:(1)、先确保当前size+1空间没问题,有问题的话先扩容(2)、add(E e)将最新的数据放在末尾,add(index,e)在数组中插入数据(关于效率,相同长度的ArrayList和LinkedList,在前半部分插入数据LinkedList占优,在后半部分插入ArrayList占优,以为LinkedList的检索会占用较长时间)remove:删除中间一个后,后面的原创 2016-10-19 14:56:29 · 242 阅读 · 0 评论 -
ConcurrentHashMap的优点以及实现…
相信每个JAVA程序员都了解HashMap,最大的问题是线程不安全,因为方法中不涉及到同步,也正因为如此,HashMap的效率非常高,在不涉及线程安全的程序中广泛被应用。然而当涉及到多线程作业时,就会出现一些问题。为了解决这些问题JAVA提供了Hashtable,这是一种整体加锁的数据结构,然而效率不敢恭维。这时候就有了ConcurrentHashMap。一个例子说明三者关系:前提:某个卫原创 2016-10-19 14:57:23 · 5061 阅读 · 0 评论 -
java链表实现队列
链表实现队列,好处是可以动态增长。上代码:1)、实现队列的一个节点:private class Node {public T data; //节点的值public Node next; //指向下一个节点public Node(T data, Node next) {this.data = data;this.next = next;}}2)、队列构造器:publ原创 2016-10-19 14:57:51 · 380 阅读 · 0 评论