import java.util.HashSet;
import java.util.Set;
public class SetDemo2 {
public static void main(String[] args) {
Set set = new HashSet();
A a1 = new A(1);
A a2 = new A(2);
A a3 = new A(1);
A a4 = new A(2);
System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
System.out.println(a4);
set.add(a1);
set.add(a2);
set.add(a3);
set.add(a4);
System.out.println(set.size());
System.out.println(set);
System.out.println("===================");
a1.i = 10;
System.out.println(set);
System.out.println("===================");
a1.i = 2;
System.out.println(set);
System.out.println("===================");
set.remove(a1);
System.out.println(set);
set.remove(a3);
System.out.println(set);
}
}
class A{
int i;
public A(int i) {
this.i = i;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + i;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
A other = (A) obj;
if (i != other.i)
return false;
return true;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.hashCode()+"["+i+"]";
}
import java.util.Set;
public class SetDemo2 {
public static void main(String[] args) {
Set set = new HashSet();
A a1 = new A(1);
A a2 = new A(2);
A a3 = new A(1);
A a4 = new A(2);
System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
System.out.println(a4);
set.add(a1);
set.add(a2);
set.add(a3);
set.add(a4);
System.out.println(set.size());
System.out.println(set);
System.out.println("===================");
a1.i = 10;
System.out.println(set);
System.out.println("===================");
a1.i = 2;
System.out.println(set);
System.out.println("===================");
set.remove(a1);
System.out.println(set);
set.remove(a3);
System.out.println(set);
}
}
class A{
int i;
public A(int i) {
this.i = i;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + i;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
A other = (A) obj;
if (i != other.i)
return false;
return true;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.hashCode()+"["+i+"]";
}
}
/
实际输出
1811075214[1]
1588970020[2]
1407343478[1]
1940447180[2]
2
[1811075214[1], 1588970020[2]]
===================
[1811075214[10], 1588970020[2]]
===================
[1811075214[2], 1588970020[2]]
===================
[1811075214[2]]
[1811075214[2]]