上一节(PHP内核探索之变量(3)- hash table),我们已经知道,数组在PHP的底层实际上是HashTable(链接法解决冲突),本文将对最常用的函数系列-数组操作的相关函数做进一步的跟踪。本文主要内容:PHP中提供的数组操作函数数组操作函数的实现结语参考文献一、PHP中提供的数组操作函数...
分类:
编程语言 时间:
2014-12-24 22:42:58
阅读次数:
153
1, JAVA最初版本只为最常用的数据结构提供了很少的一组类:Vector、Stack、Hashtable、BitSet与Enumeration接口,从JAVA1.2版本开始推出了一组功能完善的的数据结构。集合类的由来:对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定。就使用集合容器进....
分类:
编程语言 时间:
2014-12-24 21:19:21
阅读次数:
529
集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口 Collection是最基本的集合接口,一个Collection代表一组O....
分类:
其他好文 时间:
2014-12-24 13:19:31
阅读次数:
108
HashMap是由数组+链表组成;寻址容易,插入和删除困难。(存储单元数组Entry[],数组里面包含链表)
3、HashMap、HashTable和ConcurrentHashMap的线程安全问题
HashMap:线程不安全的。
HashTable:锁住整张hash表,让线程独占。hashMap允许为空。通过分析Hashtable就知道,synchronized是针对整张Hash表的,
即每次锁住整张表让线程独占,安全的背后是巨大的浪费。
ConcurrentHashMap:一个更快的hashmap,它提...
分类:
其他好文 时间:
2014-12-24 08:42:01
阅读次数:
150
使用再哈希算法查找元素:
/*
hash search, using rehash method
if find k, return
if not find, d=(d+step)%m, rehash find
*/
int SearchHash(HashTable H, KeyType k)
{
int d, d1, m;
m = H.tableS...
分类:
编程语言 时间:
2014-12-23 22:41:24
阅读次数:
414
题目不难,但是我这个方法太贱了,我做了一个O(n^2)的方法,但是很明显跑不过因为会time exceed limited,所以我就取巧写了一个第六行。。。大家忽略吧……
public class Solution {
public int majorityElement(int[] num) {
int top = num.length/2;
int count =...
分类:
编程语言 时间:
2014-12-23 12:30:19
阅读次数:
254
//特殊集合,栈 stack Stack ss = new Stack(); ss.Push(3); //向栈中插入3 Console.WriteLine(ss.Peek()); //返回最后一个进入栈的元素 Console.WriteLine(ss.Pop()); //返回并移除最后一个进入栈的元...
分类:
其他好文 时间:
2014-12-23 10:25:26
阅读次数:
188
一共三组:vector(1.0)--ArrayList(1.2)HashTable(1.0)--HashMap(1.2)StringBuffer(1.0)--StringBuilder(1.5)extendAbstractStringBuilderChecked异常外部资源问题引起的,JVM可以预见到如:读取文件不存在,数据库连接没有建立等Unchecked异常(RuntimeExcepeion)程序员编码..
分类:
编程语言 时间:
2014-12-23 06:46:21
阅读次数:
176
Map是双列集合的顶层接口。 Map集合的数据结构仅仅针对键有效,与值无关。 Map集合存储的是键值对形式的元素,键唯一,值可以重复Map集合有HashMap、Hashtable、TreeMap三个常用子类。 1、HashMap底层数据结构是哈希表。线程不安全,效率高。允许使用null键和nu...
分类:
其他好文 时间:
2014-12-21 23:27:35
阅读次数:
245
名词解释
线程同步:线程同步,可理解为线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。在多线程编程里面,一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多有一个线程访问,以保证数据的完整性。
区别
HashMap
非线程安全
允许有null的键和值
效率高
方...
分类:
其他好文 时间:
2014-12-21 22:12:46
阅读次数:
160