`
blueyanghualong
  • 浏览: 225354 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

HashObject之LinkedHashObjectMap(1)

阅读更多
import java.util.ConcurrentModificationException;
import java.util.Iterator;
import java.util.NoSuchElementException;

import org.apache.log4j.Logger;
/**
* 这个LinkedHashObjectMap主要是在HashObjectMap基础上
* 实现了双向链表功能。该类不是线程安全的。
*
* @param <T>
*/
public class LinkedHashObjectMap<T extends LinkedBaseHashObject> extends HashObjectMap<T> {
private transient LinkedBaseHashObject header;

    private final boolean accessOrder;
   
    private int maxUserCount = 10000;
   
    private static final Logger log = Logger.getLogger(LinkedHashObjectMap.class);
   
    public LinkedHashObjectMap(int initialCapacity, float loadFactor) {
        super(initialCapacity, loadFactor);
        accessOrder = false;
    }

    /**
     * Constructs an empty insertion-ordered <tt>LinkedHashObjectMap</tt> instance
     * with the specified initial capacity and a default load factor (0.75).
     *
     * @param  initialCapacity the initial capacity
     * @throws IllegalArgumentException if the initial capacity is negative
     */
    public LinkedHashObjectMap(int initialCapacity) {
    super(initialCapacity);
        accessOrder = false;
    }

    /**
     * Constructs an empty insertion-ordered <tt>LinkedHashObjectMap</tt> instance
     * with the default initial capacity (16) and load factor (0.75).
     */
    public LinkedHashObjectMap() {
    super();
        accessOrder = false;
    }
   
   
    public LinkedHashObjectMap(int   initialCapacity,
                   float loadFactor,
                             boolean accessOrder) {
       super(initialCapacity, loadFactor);
       this.accessOrder = accessOrder;
   }
   
    public void init() {
    header = new HeaderLinkedBaseHashObject();
        header.before = header.after = header;
    }

    void transfer(LinkedBaseHashObject[] newTable) {
        int newCapacity = newTable.length;
        for (LinkedBaseHashObject e = header.after; e != header; e = e.after) {
            int index = indexFor(e.keyHashCode(), newCapacity);
            e.next = newTable[index];
            newTable[index] = e;
        }
    }
    public T get(LinkedBaseHashObject object) {
    T e = getObject(object);
        if (e == null)
            return null;
        e.recordAccess(this);
        return e;
    }

    /**
     * Removes all of the mappings from this map.
     * The map will be empty after this call returns.
     */
    public void clear() {
        super.clear();
        header.before = header.after = header;
    }
    /**
     * 双向链表的头
     * @author l90004506
     *
     */
    class HeaderLinkedBaseHashObject extends LinkedBaseHashObject{

    public HeaderLinkedBaseHashObject(){
    this.keyHashcode = -1;
    }
   
public void copyObject(BaseHashObject object) {
// TODO Auto-generated method stub

}

public boolean equalsHashObject(BaseHashObject object) {
// TODO Auto-generated method stub
return false;
}

public boolean keyEquals(BaseHashObject object) {
// TODO Auto-generated method stub
return false;
}
   
    }
    /**
     * 是否按访问顺序排序,即将访问过的对象置顶。
     * @return
     */
public boolean isAccessOrder() {
return accessOrder;
}
    /**
     * 获取链表头
     * @return
     */
protected LinkedBaseHashObject getHeader() {
return header;
}
   
分享到:
评论

相关推荐

    SAS Hash Object Programming

    Hash programming in SAS. to show you how hash objects in SAS DATA steps can be used to lookup ...you should be able to start wisely incorporating hash object programming techniques in your applications.

    Hash算法之SHA1实现c++

    SHA1(Secure Hash Algorithm 1)是一种广泛使用的散列函数,属于哈希算法的一种,它能够将任意长度的输入(也叫做预映射)通过一个单向函数转换为固定长度的输出,通常这个长度是160位。SHA1算法在网络安全、数据...

    hash-obj:获取对象的哈希

    hashObject ( { ':unicorn:' : ':rainbow:' } , { algorithm : 'sha1' } ) ; //=&gt; '3de3bc784035b559784fc276f47493d60555fba3' 原料药 hashObject(对象,选项?) 目的 类型: object 选项 类型: object 编码方式...

    ObjectHash.zip

    "ObjectHash.zip"文件中的内容很可能是一个C#代码示例,演示了如何对对象进行哈希处理。 首先,C#标准库提供了多种哈希类,如`System.Security.Cryptography`命名空间下的`SHA256`、`MD5`、`CRC32`等,它们都可用于...

    实验五:安全Hash算法SHA-1的实现

    ### 安全Hash算法SHA-1的实现 #### 一、Hash函数与数据完整性 Hash函数在现代密码学中扮演着至关重要的角色,它能够确保数据的完整性和一致性。一个典型的Hash函数接受任意长度的数据输入,并产生固定长度的输出,...

    Excel的MD5加密的2种实现方式

    Set HashObject = CreateObject("System.Security.Cryptography.HMACSHA1") HashObject.Key = StrConv(PlainText, vbFromUnicode) HashBytes = HashObject.ComputeHash_2(StrConv(PlainText, vbFromUnicode)) MD...

    git-hash-object:就像从git hash-object一样计算对象ID

    就像从git hash-object一样计算对象ID。 安装 npm install git-hash-object 用法 const gitHashObject = require ( "git-hash-object" ) ; gitHashObject ( "Hello World" ) ; //=&gt; "5e1c309dae7f45e0f39b1bf3ac3...

    HASH算法之MD5算法

    hash函数之md5程序,可运行,包含testbench

    散列函数hash-sha1

    散列函数hash 基于SHA-1。MATLAB可运行实现。

    US Secure Hash Algorithm 1 (SHA1) (SHA1算法英文介绍)

    US Secure Hash Algorithm 1 (SHA1) Status of this Memo This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is...

    Hash函数与消息认证

    5.3 安全Hash算法SHA-1 5.3.1 SHA-1算法步骤 5.3.2 SHA-1和MD5的比较 5.4 基于分组密码与离散对数的Hash函数 5.4.1 利用分组密码算法构造Hash函数 5.4.2 基于离散对数问题的Hash函数 5.5 消息认证 5.5.1 消息...

    MD5 SHA1校验工具Hash

    MD5(Message-Digest Algorithm 5)和SHA1(Secure Hash Algorithm 1)都是用于创建数字摘要的算法,这些摘要可以被视为原始数据的指纹。 MD5是由美国计算机科学家Ronald Rivest开发的,它能够将任意长度的数据转化...

    HASH(md5 sh1 hash crc32)工具

    标题中的"HASH(md5 sh1 hash crc32)工具"指的是用于计算文件或数据的哈希值的软件,这些哈希算法包括MD5、SHA1、普通的Hash以及CRC32。哈希函数是信息安全领域的重要组成部分,它们将任意长度的数据转化为固定长度...

    hash1.cpp

    hash1.cpp

    Hash值检测工具

    1. **MD5(Message-Digest Algorithm 5)**: 是最早的广泛使用的Hash函数之一,产生一个128位(16字节)的Hash值,通常以32个十六进制字符表示。尽管MD5已经被发现存在安全性问题,即存在碰撞(两个不同的文件可能...

    hashids:一个用于 http 的 Clojure 包装库

    安装 [hashobject/hashids "0.2.0"]用法 user=&gt; (use 'hashids.core)niluser=&gt; (encrypt 134 "super-secret-salt")"Lzn"user=&gt; (decrypt "Lzn" "super-secret-salt")134user=&gt; (encrypt 225 "super-secret-salt")"7...

    Hash函数MD5与SHA-1算法实现

    MD5(Message-Digest Algorithm 5)和SHA-1(Secure Hash Algorithm 1)是两种广泛使用的哈希函数,它们在信息安全领域扮演着至关重要的角色。哈希函数是一种将任意长度的数据转换为固定长度输出的函数,这个输出...

    uthash User Guide

    1. **哈希函数和哈希表**:uthash中的每个结构体元素都包含一个名为`UT_hash_handle`的隐藏字段,这个字段用于存储哈希值和链表指针。哈希函数用于将结构体的关键字段转换为哈希值,以确定元素在哈希表中的位置。ut...

    uthash hash string

    Any C structure can be stored in a hash table using uthash. Just add a UT_hash_handle to the structure and choose one or more fields in your structure to act as the key. Then use these macros to store...

Global site tag (gtag.js) - Google Analytics