package test;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
class KeyMaster {
public int i;
public KeyMaster(int i){this.i = i ;}
public boolean equals(Object o){
return i == ((KeyMaster)o).i;
}
public int hashCode() {
return i;
}
}
public class MapIt {
public static void main(String[] args) {
Set<KeyMaster> set = new HashSet<KeyMaster>();
KeyMaster k1 = new KeyMaster(1);
KeyMaster k2 = new KeyMaster(2);
set.add(k1);
set.add(k1);
set.add(k2);
set.add(k2);
/*System.out.print(set.size() + ":");
System.out.println(k2.hashCode()) ;*/
k2.i = 1;
System.out.println(k1.equals(k2)) ;
System.out.println(set.size() + ":");
set.remove(k1);
System.out.println(set.contains(k2)) ;
System.out.println(set.size()) ;
set.remove(k2) ;
System.out.println(set.contains(k2)) ;
Iterator it = set.iterator() ;
while(it.hasNext()){
System.out.println((it.next()).getClass().getName()) ;
}
/*System.out.println(k1.hashCode()) ;
System.out.print(set.size() + ":");
System.out.println(k2.hashCode()) ;
set.remove(k2);
System.out.print(set.size());*/
}
}
set.remove(k1)已经删除k1了,set中没有k1和k2,为什么set的size为1呢?
System.out.println(set.contains(k2)) ;为false,为什么还能set.remove(k2) ;呢?大家看看啊!
分享到:
相关推荐
response.setHeader 问题详解 Response.setHeader 问题是指在 Servlet 中使用 response 对象的 setHeader 方法来设置 HTTP 消息报头,以控制浏览器的缓存行为。本文将详细解释 response.setHeader 的作用、HTTP ...
Active-set方法是一种在优化问题中解决凸二次规划(Quadratic Programming, QP)的有效算法。它主要应用于处理约束优化问题,尤其在那些包含线性不等式约束的情况下。在Matlab环境中,利用Active-set算法能够高效地...
本文讨论了在USB枚举时遇到的一个具体问题——在SetAddress之后设备没有响应,导致枚举失败。这种情况可能是由多种原因引起的,从描述中可以提炼出一些关键的知识点。 1. USB枚举过程中的SetAddress步骤: - 当USB...
Level Set Methods是一种基于隐式曲面的数值技术,主要用于动态界面的演变问题。这种方法特别适用于处理在移动界面中出现的问题,例如物体的分割、表面重建、图像恢复等。Level Set Methods的核心思想是将动态界面...
文件下载response.setHeader()下载中文文件名乱码问题解决办法 本文主要讨论了文件下载时response.setHeader()下载中文文件名乱码问题的解决办法。该问题是由于 HTTP 消息头中的 Content-Disposition 头字段不正确...
此外,不正确的使用SETRES可能会导致显示问题,如屏幕黑屏,所以在执行前最好备份当前的显示设置。 在标签“None”的情况下,可能意味着这个工具或技术比较小众,或者它可能是用户自定义的,没有被归类到特定的技术...
最后,如果在改变分辨率后遇到问题,可以通过重启电脑或者使用安全模式恢复原来的设置。 除了基本的分辨率调整,"setres"可能还具备其他高级功能,如自定义分辨率设置。这使得用户可以根据个人需求创建独一无二的...
Level Set 方法能够很好地处理这类问题,因为它不是直接追踪界面,而是通过一个嵌入函数来间接表示界面,从而避免了直接追踪界面所带来的困难。 #### 三、Level Set 方法的应用 ##### 1. 图像分割 在图像处理领域...
- 性能优化:频繁调用`SetProperty()`可能会导致性能问题,尤其是在循环或大量调用的场景下。考虑是否需要缓存或批量处理。 6. **文档和调试** 使用`SetProperty()`时,确保你理解了它所操作的对象以及该属性在...
set-UID权限虽然强大,但也可能导致安全问题。恶意用户可能利用带有set-UID的程序来获取不应有的权限,例如通过一个精心设计的程序来读取或修改敏感文件。因此,编写set-UID程序时必须格外小心,避免任何可能的安全...
《SETMAIN中控门禁配置工具详解》 在智能安防领域,门禁系统扮演着至关重要的角色,而中控科技作为该领域的领军企业,其产品深受用户信赖。本文将详细介绍“SETMAIN中控门禁配置工具”,以及如何在Linux环境下进行...
总的来说,Levelset方法是一种强大的工具,它在处理与界面演化相关的各种问题时展现出极大的灵活性和准确性。结合现代的深度学习技术,Levelset方法可以进一步扩展其应用范围,解决更复杂的实际问题。
分辨率是计算机显示器显示图像的重要参数,它决定了屏幕上像素的数量,直接影响到屏幕显示的清晰度和细节表现力...然而,对于普通用户来说,日常调整分辨率还是推荐使用操作系统自带的设置界面,以避免可能的技术问题。
半数集问题 给定一个自然数n,由n开始可以依次产生半数集set(n)中的数如下。 (1) n∈set(n); (2) 在n的左边加上一个自然数,但该自然数不能超过最近添加的数的一半; (3) 按此规则进行处理,直到不能再添加...
在C++编程中,集合(Set)是一种容器,它存储唯一的元素,并且这些元素通常是按照某种...通过自定义集合类,我们可以方便地模拟集合的各种操作,这对于理解和实践集合论概念以及在实际编程问题中使用集合都非常有用。
总结来说,Vue.set()和this.$set()是用来解决Vue中对象属性动态添加时的响应性问题。在开发中,当需要确保数据变化能够反映到视图上时,应优先考虑使用这两个方法。了解它们的工作原理和正确使用方法,能够避免出现...
在编程实践中,set和multiset经常被用于解决各种算法问题。比如在数据去重、查找与排序结合的场景中,使用set或multiset可以大大简化代码。举个例子,如果要统计一段文本中每个单词的出现频率,可以使用multiset来...
【LG Easy Set Package】是LG电子为用户提供的一个专门针对其显示器产品的设置工具包。这款软件主要用于帮助用户更轻松、快捷地对LG显示器进行个性化设置和优化,确保用户获得最佳的视觉体验。以下是对该软件及其...
- **计算机视觉**:在目标检测、跟踪和识别中,Levelset方法能有效地处理形状变化和光照不均匀的问题。 - **遥感图像处理**:对于地面物体的自动识别和分类,Levelset方法可以适应地形的复杂性和图像的噪声。 ### ...
Level Set法在实际应用中,也遇到了一些挑战,如重新初始化水平集函数时可能出现的数值扩散问题,以及在处理界面运动速度较大时可能出现的界面不准确等问题。尽管如此,Level Set法已经广泛应用于材料学、流体力学、...