import java.util.*;
// 简单的手机类
class Phone {
private String name;
private double price;
// 无惨构造
public Phone() {
}
// 有参构造
public Phone(String name, double price) {
this.name = name;
this.price = price;
}
@Override
public String toString() {
return "Phone{" +
"name='" + name + '\'' +
", price=" + price +
'}';
}
@Override
public boolean equals(Object o) {
System.out.println("Phone的equals()方法..........");
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Phone phone = (Phone) o;
return Double.compare(phone.price, price) == 0 && Objects.equals(name, phone.name);
}
}
public class CollectionDeom01 {
public static void main(String[] args) {
testFun();
testFun2();
}
//Collection 方法测试
public static void testFun() {
Collection coll = new ArrayList();
Collection collSub = Arrays.asList(666, 777);// list
// add 方法
System.out.println("-- add方法 ---------------");
coll.add(123);// Integer 123
coll.add("java.util.Collection");
coll.add(new Phone("红米", 1699));
coll.addAll(collSub); // 入参是 Collection对象
System.out.println(coll);
// contains 方法 会调用 equals方法
System.out.println("-- contains方法 ---------------");
System.out.println(coll.contains("123"));// 字符串123
System.out.println(coll.contains(new Phone("红米", 1699)));
System.out.println(coll.containsAll(collSub));
// remove 方法
System.out.println("-- remove方法 ---------------");
coll.remove(666);//删掉 Integer 666
System.out.println(coll);
coll.removeAll(collSub);//删掉 coll和collSub 的差集
System.out.println(coll);
// clear + size 方法,清空集合 返回集合元素个数
System.out.println("-- clear + size 方法 ---------------");
System.out.println("clear() 执行前集合元素个数:" + coll.size());
coll.clear();
System.out.println("clear() 执行后集合元素个数:" + coll.size());
}
// Collection 集合遍历,通过迭代器实现
public static void testFun2() {
Collection coll = new ArrayList();
coll.add(123);// Integer 123
coll.add("java.util.Collection");
coll.add(new Phone("红米", 1699));
coll.add(new Phone("小米88", 8889));
Iterator iterator = coll.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
testFun() 打印结果
testFun2() 打印结果