Collections
Collections是Zeze的内建模块。
LinkedMap
一个容量巨大的Map。一个有顺序的Map,注意,不是排序的Map。 所有数据操作支持事务。遍历操作是事务外的。
初始化
MyApp.LinkedMapModule = new LinkedMap.Module(zeze);
使用例子
Var friends = LinkedMapModule.open(“Friends”, BFreind.clsss);
| 方法 | 说明 |
|---|---|
| getRoot | 得到LinkedMap的根节点 |
| getNode | 查询数据节点 |
| getFristNode | 查询第一个数据节点 |
| isEmpty | 是否空 |
| size | 项数量 |
| moveAhead | 把指定项移到列表开头 |
| moveTail | 把指定项移到列表尾巴 |
| getOrAdd | 根据key查询项,没有就创建一个 |
| put | 插入或者替换一个key-value项 |
| get | 查询项 |
| remove | 移除项 |
| removeNode | 移除节点 |
| clear | 清楚整个容器 |
| walk | 遍历容器 |
Queue
一个容量巨大的单向链表队列。所有数据操作支持事务。遍历操作是事务外的。 不需要初始化,通过Zeze.Application.Queues创建和大概队列。
| 方法 | 说明 |
|---|---|
| isEmpty | 队列是否为空 |
| pollNode | 删除并返回整个第一个节点,不存在返回null |
| peekNode | 返回第一个节点,不存在返回null |
| clear | 清除队列 |
| poll | 从队头提取项,没有则返回null |
| peek | 查询队头,队列为空返回null |
| size | 项的数量 |
| add | 在队尾添加项 |
| push | Stack |
| pop | Stack |
| walk | 事务外遍历整个队列 |
DepartmentTree
这是一棵树。
初始化
MyApp.DepartmentTree = new DepartmentTree.Module(zeze, LinkedMapModule);
| 方法 | 说明 |
|---|---|
| getRoot | 返回管理树的根节点 |
| getDepartmentTreeNode | 返回部门节点 |
| getDepartmentMembers | 返回部门成员的LinkedMap |
| getGroupMembers | 返回树的所有成员的LinkedMap |
| selectRoot | 事务外,返回树的根管理节点 |
| selectDepartmentTreeNode | 事务外,返回部门节点 |
| create | 创建树 |
| changeRoot | 改变树的总管理员 |
| getOrAddRootManager | 树的根节点管理员 |
| getOrAddManager | 部门几点的管理员 |
| createDepartment | 创建部门 |
| deleteDepartment | 删除部门 |
| isRecursiveChild | 是否某个部门的子(孙)部门 |
| moveDepartment | 移动部门 |
CsQueue
Concurrent Server Queue。每个server拥有自己私有的队列,只能操作自己的队列。server 宕机的时候,其他server会接管它的队列数据,保证数据最终能得到处理。它的接口实际 上和Queue一样,内部也是用Queue实现的。
| 方法 | 说明 |
|---|---|
| isEmpty | 队列是否为空 |
| pollNode | 删除并返回整个第一个节点,不存在返回null |
| peekNode | 返回第一个节点,不存在返回null |
| clear | 清除队列 |
| poll | 从队头提取项,没有则返回null |
| peek | 查询队头,队列为空返回null |
| size | 项的数量 |
| add | 在队尾添加项 |
| push | Stack |
| pop | Stack |
| walk | 事务外遍历整个队列 |
CHashMap
具有多个桶的大容量持久化HashMap实现。C=Concurrent。 主要数据结构:LinkedMap
Hash选择桶:var index = ByteBuffer.calc_hashnr(key) % buckets.length;
var bucket = buckets[index];
| 方法 | 说明 |
|---|---|
| get | 根据key查询映射项 |
| getOrAdd | 查询或创建 |
| put | 加入映射项,覆盖方式 |
| remove | 删除映射项 |
| size | Map.size |
| isEmpty | Map是否为空 |