Wesley13 Wesley13
3年前
java容器之HashMap
HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。解决哈希冲突的三个方法:a.开放定址法  又被称为再散列法,包括线性探测再散列、二次探测再散列、伪随机探测再散列b.再哈希法  地址冲突后,对哈希结果再次进行哈希,直到
御弟哥哥 御弟哥哥
3年前
深入理解 hashcode 和 hash 用法
摘要二进制计算的一些基础知识为什么使用hashcodeString类型的hashcode方法为什么大部分hashcode方法使用31HashMap的hash算法的实现原理(为什么右移16位,为什么要使用^位异或)HashMap为什
Stella981 Stella981
3年前
HashMap容量分析
了解过HashMap都应该知道,HashMap内部会创建一个Entry<K,Vtable数组来存放元素,而且这个数组的长度永远都是2的指数次方。那么问题来了,为什么选择2的指数次方呢?首先,思考一下计算出hash值后,应该存放在数组的哪个位置?显然用求余(模)最简单。然而模的效率并不高,看看JDK是怎么做的,indexFor方法:st
Wesley13 Wesley13
3年前
JAVA之forEach遍历集合
JAVA之forEach遍历集合在JDK8中,根据Lambda表达式的特性还增加了一个forEach(Consumeraction)方法来遍历集合,该方法所需要的参数是一个函数式接口importjava.util.ArrayList;importjava.util.List;
Stella981 Stella981
3年前
Python List数据的遍历
方式一:<!lang:pythonapp_list1234,5677,8899<!lang:pythonforapp_idinapp_list:<!lang:pythonprintapp_id输出:123
Wesley13 Wesley13
3年前
Java面试总结
1. HashMap与HashTable的区别Hashmap的key、value都可以为空,但key只能有一个为空,value可以有多个,非同步HashTable的key、value都不能为空,是同步的,线程安全因为hashtable,concurrenthashmap它们是用于多线
Stella981 Stella981
3年前
HashMap, HashTable, HashSet分析
HashMap分析:其主要特性:(keyvalue)存储,keyvalue可为NULL,非线程安全。其主要属性://默认容量微16staticfinalintDEFAULT_INITIAL_CAPACITY1<<4;//最大容量2^30static
Wesley13 Wesley13
3年前
OSG节点访问和遍历
遍历节点树:osg::Node类中有两个辅助函数:voidascend(NodeVisitor&nv)//虚函数,向上一级节点推进访问器voidtraverse(NodeVisitor&nv)//虚函数,向下一级节点推进访问器NodeVisitor的traverse()函数实现如下:in
Stella981 Stella981
3年前
HashMap Hashtable 的区别
Hashtable 和 HashMap作为 Map 的基本特性两者都实现了Map接口,基本特性相同\          对同一个Key,只会有一个对应的value值存在\          如何算是同一个Key?首先,两个key对象的hash值相同,其次,key对象的equals方法返回真内部数据结构Hashtab
Wesley13 Wesley13
3年前
5种方式实现数组扁平化
数组扁平化概念数组扁平化是指将一个多维数组变为一维数组1,2,3,4,51,2,3,4,5实现1\.reduce遍历数组每一项,若值为数组则递归遍历,否则concat。functionflatten(arr){