Skip to content

Latest commit

 

History

History
31 lines (23 loc) · 932 Bytes

集合笔记.md

File metadata and controls

31 lines (23 loc) · 932 Bytes

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);
}