文章目錄
  1. 1. Question

程序员总是有踩不完的坑,今天就在HashSet这个类上栽了跟头。终究还是自己对HashSet集合理解不够深刻。下面就来说一下问题及原因。

Question

首先用一个简单的例子描述一下问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class HashCodeTest {
int hashCode = 0;
//重写Object对象中的save方法
@Override
public int hashCode() {
return ++hashCode;
}
public static void main(String[] args) {
Set<HashCodeTest> hashCodeTests = new HashSet<>();
HashCodeTest hashCodeTest = new HashCodeTest();
System.out.println(hashCodeTest.hashCode());
hashCodeTests.add(hashCodeTest);
System.out.println(hashCodeTests.size());
//迭代
Iterator<HashCodeTest> iterator = hashCodeTests.iterator();
while (iterator.hasNext()) {
iterator.next();
iterator.remove();
}
System.out.println(hashCodeTests.size());
}
}
文章目錄
  1. 1. Question