`

Hash内存溢出问题

 
阅读更多
public class Student {
	
	public Student(int id, String name) {
		this.id = id;
		this.name = name;
	}

	private int id;
	
	private String name;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + id;
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Student other = (Student) obj;
		if (id != other.id)
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}
	
	
}


===========================================
import java.util.HashSet;
import java.util.Set;

public class HashTest1 {

	public static void main(String[] args) {
		
		Set<Student> set = new HashSet<Student>();
		Student s1 = new Student(1,"jzk");
		Student s2 = new Student(2,"wyq");
		Student s3 = new Student(3,"jd");
		set.add(s1);
		set.add(s2);
		set.add(s3);
		
		System.out.println(set.size());
		s1.setName("jzk1");
		set.remove(s1);
		
		System.out.println(set.size());
		
	}

}
分享到:
评论

相关推荐

    uthash User Guide

    10. **错误处理**:uthash不提供内置的错误处理机制,因此在编写代码时,需要自行检查和处理可能出现的问题,如内存溢出、空指针等。 通过深入理解和熟练运用《uthash用户指南》中的内容,C++开发者可以在项目中...

    hash字符串函数总结

    每次迭代,哈希值左移4位后加上当前字符,如果哈希值的最高4位非零,就进行异或和与操作来避免高位溢出。 6. **BKDR Hash Function**: BKDR Hash(Berkely-Knuth-Dhrymes Hash)基于一个固定的种子值,每次迭代都...

    hive on tez 常见报错问题收集

    当遇到Java堆空间溢出错误时,这意味着Hive on Tez的内存配置可能不足。可以通过调整`hive.tez.container.size`和`hive.tez.java.opts`来增加内存分配,例如设置前者为9216MB,后者为6144MB。同时,如果物理内存或...

    C语言实现hash算法

    5. 安全性:在实现过程中注意避免缓冲区溢出、整数溢出等安全问题。 6. 测试:编写测试用例覆盖各种输入情况,包括边缘和异常情况,确保算法的正确性和鲁棒性。 这个项目提供的C语言源码可以作为学习和理解哈希算法...

    sas hash简介与实例.pdf

    SAS Hash 简介与实例 SAS 中的 Hash 表是一种高效的数据存储和检索方式,特别是在处理大规模数据时。...但是,需要根据实际情况选择合适的 Hash 表大小和数据集,以避免内存溢出和性能下降等问题。

    MySQL 内存分析

    通常互联网上有许多不准确的拇指规则(umpeenthumb rules),这可能会导致内存被过度使用,或者出现频繁的内存溢出(OOM)问题。 在MySQL中,缓冲区(Buffers)是用于临时存储数据的部分,它们的大小可以根据需要...

    Hash算法收录

    - **空间利用率**:由于这些函数都只需要固定大小的内存空间,因此在空间利用率方面表现良好。 综上所述,这些经典Hash函数在实际应用中具有很高的实用价值。不过需要注意的是,对于安全性要求较高的场景,如密码...

    Oracle CBO 学习笔记之(1) : 深入理解Oracle Hash Join的代价模型及其执行流程

    在实际应用中,理解Oracle的Hash Join代价模型和执行流程可以帮助我们优化查询性能,例如,通过调整表的分区策略、增加内存资源或利用并行执行来改善Hash Join的效率。同时,理解何时Hash Join比其他类型的JOIN(如...

    经典hash源码

    4. 建立公共溢出区:将所有冲突的元素放在一个公共区域,单独处理。 四、经典哈希源码实现 在编程中,哈希表(HashMap)是使用哈希函数实现的一种数据结构。以下是一个简单的Java HashMap的哈希函数实现: ```...

    dump文件分析工具,.hprof memoryanalyzer_v1.5.0.rar

    4. **哈希表视图(Hash Map)**:如果内存问题与哈希表有关,MAT可以详细展示表中的键值对,帮助识别是否有重复或无效的条目导致内存浪费。 5. **到达性分析(Reachability Analysis)**:MAT可以通过可达性算法来...

    uCOS II上如何实现大容量内存文件系统

    在uCOS II上实现这样的内存文件系统,需要考虑移植问题,这涉及到操作系统接口的适配和调度机制的协调。移植过程主要包括适配uCOS II的中断服务、任务调度和内存管理等机制,确保文件系统能与操作系统无缝集成,提供...

    hash_alg.rar_Word for Word

    在这个特定的实现中,可能有对输入字符串长度的特殊处理,确保其不超过特定内核版本可以支持的最大范围,以避免内存溢出或其他错误。 为了深入理解这个算法,我们需要查看"hash_alg.c"的源代码,分析其中的函数、...

    C++ 内存算法《英文版》

    例如,使用动态规划解决复杂问题时,可能需要大量动态分配内存存储中间结果。合理地利用内存空间和时间,设计高效的算法,可以显著提升程序性能。同时,理解内存的局限性,比如栈空间有限,可以避免栈溢出错误。 在...

    蚂蚁面试题总结分享.doc

    * 字符串存在永久代当中,容易出现性能问题和内存溢出 * 类及方法的信息比较难确定其大小,因此对永久代的大小制定比较困难,太小容易出现永久代溢出,太大则容易导致老年代溢出 * 永久代会为GC带来不必要的复杂度,...

    Memcached内存分析、调优、集群

    - `-M`:内存不足时禁止LRU,避免溢出。 - `-n &lt;bytes&gt;`:初始chunk大小,用于存储键值对。 - `-f &lt;factor&gt;`:slab增长因子。 - `-l &lt;address&gt;`:监听的IP地址。 - `-p &lt;port&gt;`:TCP监听端口。 - `-c &lt;conn&gt;`:最大...

    20200601 Hashing_hash_

    常见的冲突解决策略有开放寻址法、链地址法、再哈希法和公共溢出区等。 3. **动态扩容**:当哈希表中的元素数量超过预设阈值时,为了保持高效查找,通常需要进行扩容操作。扩容通常涉及重新计算所有元素的新哈希值...

    hash表资料

    4. 建立公共溢出区:为所有发生冲突的关键字设立一个单独的溢出区。 在Linux环境下,C语言实现哈希表时,可以使用标准库中的`&lt;stdlib.h&gt;`、`&lt;string.h&gt;`等进行内存管理和字符串操作。自定义哈希函数和冲突解决策略...

    初探在uCOS_Ⅱ上实现大容量内存文件系统

    为了提高查找效率,设计者采用链地址法组织全局Hash表,将其分为基本表和溢出表两部分。基本表是一个固定大小的顺序表,每个文件计算得出的Hash值通过对表的大小取模来确定其位置。如果位置已被占用,则在溢出表中为...

    C++中的重要知识!!!

    1. **问题1-2**:对于询问正整数是否出现的问题,可以预先将正整数存入Hash表,然后利用Hash表进行快速查询。 2. **问题1-3**:对于01矩阵的查询,可以使用二维字符串Hash,存储子矩阵的Hash值,以便快速判断是否...

    redis之相关理解分析以及面试问题总结

    - Redis的内存溢出问题:可以通过限制Redis的最大内存、配置内存淘汰策略或优化数据结构来防止内存溢出。 4. 高级特性: - Redis Cluster:Redis的分布式解决方案,通过分片提供高可用性和水平扩展能力。 - ...

Global site tag (gtag.js) - Google Analytics