第一 ,你没有用泛型 泛型的用法应该是 ArrayList<Work> arr1 = new ArrayList<Wo rk>();
第二,你每次添加的时候都是arr1.add(new Work("a", 1)); 这样子每次都是重新new的一个新的Work类
所以最后 System.out.println(arr1.remove(new Work("a", 1)));//删除元素 失败,因为这也是重新new的Work类 对象不是同一个所以返回false 而remove(Object obj )这个方法是需要对象相同时才能返回 true
public class Test {
public static void main(String[] args) {
// 建立一个ArrayList容器,使用泛型
ArrayList<Work> arr1 = new ArrayList<Work>();
// 增加元素
Work w1= new Work("a", 1);
Work w2= new Work("b", 2);
Work w3= new Work("c", 3);
Work w4= new Work("a", 1);
arr1.add(w1);
arr1.add(w2);
arr1.add(w3);
arr1.add(w4);
// arr1.add(new Work("a", 1));
// arr1.add(new Work("b", 2));
// arr1.add(new Work("c", 3));
// arr1.add(new Work("a", 1));
System.out.println(arr1.remove(w1));//删除元素
Iterator it1 = arr1.iterator();
// 遍历打出
while (it1.hasNext()) {
Work wk = (Work) it1.next();
System.out.println("名字是" + wk.getName() + "年龄" + wk.getAge());
}
}
}
class Work {
private String name;
private int age;
Work(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
这样就可以了 |