List.contains(Object); 比较的是对象,如果新建的对象和已有的对象属性全相同,返回结果为false,因为两个对象不相等,内存地址不一致
List list = new ArrayList();
list.add(new MyObject());
MyObject obj = new MyObject();
boolean bl = list.contains(obj);
运行流程,从内存中逐个取出list集合中对象,然后调用.equals()比较是否相等
若想得到 list 集合中是否包含某个属性为指定值的对象,可重写 MyObject 的 equals 方法实现 学自慕课网《Java入门第三季 6-1》
Set.contains() 是取得对象的 hasCode(),当哈希码相等时, 然后再调用 equals 方式做比较
Map.containsValue() 也会调用 .equals()
生成十个不重复的在0-100以内的整数
Random random = new Random();
for(int i=0; i<10; i++) {
do{
k = random.nextInt(100);
}while(list.contains(k));
list.add(k);
}