`
文章列表
LinkedHashMap 继承了HashMap<K,V> 实现了 Map<K,V>接口 在LinkedHashMap中定义了新的Entry结构,它继承了 HashMap.Entry<K,V>. 定义了两个成员变量Entry<K,V> before, after;用于存储前面entry和后面entry的应用。实现双向链表的结构 private static class Entry<K,V> extends HashMap.Entry<K,V> { // These fields comprise ...
hashtable实现了Map接口. 存储结构:类似于hashmap private transient Entry[] table; 构造函数:类似于hashmap public Hashtable(int initialCapacity, float loadFactor) { if (initialCapacity < 0) throw new IllegalArgumentException("Illegal Capacity: "+ ...
存储结构: 通过hashmap来存储的   private transient HashMap<E,Object> map; 构造方法: public HashSet(int initialCapacity, float loadFactor) { map = new HashMap<E,Object>(initialCapacity, loadFactor); } Add方法:其中PRESENT是一个定义的object常量 private static final Object PRESENT = new Object(); p ...
存储结构:用数组来存桶的第一个节点。每个桶都是一个链表。里面存 hashcode & table.length 相同的那些Entry transient Entry[] table; 构造函数: loadFactor指的是重新初始化的一个伐值。比如说0.75.不理解设置这个伐值的好处是什么。实际初始化的table大小是大于initialCapacity的2的阶乘。这样做的好处是可以充分的利用table的空间,因为在查找桶的index的时候是通过 hashcode & table.length 来实现的。举个例子当length 为7时,那么当hashcode后三位为0 ...
1. Sleep和wait的区别: (1)sleep来自 thread类,wait来自 object类 (2)sleep不释放锁,还有线程控制权。wait释放锁,交出线程控制权,需要notify (3)sleep必须捕捉异常,wait不必 2. 索引的存储结构是什么: 索引是通过平衡二叉树来存储的。这样可以实现高效的存储,查询。二叉树的每个叶子结点都用来存储键值和rowid.有点是对于每个节点平衡二叉树的查询速度都是log(n) 索引的属性     有两种类型的索引块:     * 用于搜索的分支块     * 用于存储索引数据的叶块 (1) 分支块     分支块中存储以下信息:    ...
遍历可以分为上面两种方法,hm.entrySet().iterator()和 hm.keySet().iterator(). entrySet会比keySet快很多。在查资料的时候看到说 hm.entrySet()的时候会拷贝出hashtable中的数据到一个新的Set中,其实不是。 public class IterHashMap { public static void main(String args[]) { HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>(); for ...

过河算法

面试的时候,被问到过河算法,所以写了一下, 此算法的特点:将类型安装二进制存储,如狼 1,人 2,羊 4,草 8.             比较的时候按位操作,在算法2中可以扩展一辆船容量N个人 算法1: import java.util.ArrayList; public class PassRiver { private enum Type { wolf(1, "wolf"), human(1 << 1, "human"), sheep(1 << 2, "sheep"), grass( 1 & ...
Global site tag (gtag.js) - Google Analytics