Collection 接口的特点是元素是 有些可以重复,有些不可以;List接口的特点是元素有顺序,可以重复;Set接口的特点是元素无顺序,不可以重复;Map接口的特点是元素是< key ,value>,其中value 可以重复,key 不可以重复
package org.jsoft.zouye;
public class Worker { //属性,get set private int age; private String name; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } private double salary; //构造方法 public Worker(String name,int age,double salary){ this.name=name; this.age=age; this.salary=salary; }
@Override public String toString() {//转化 // TODO Auto-generated method stub return "这个工人的名字是+"+name+",年纪是:"+age+",他的工资是:"+salary; } public boolean equals(Object obj){//重写equals if(obj==null){ return false; } else{ if(obj instanceof Worker){ Worker w=(Worker)obj; if(this.name.equals(w.name)&&this.age==w.age&&this.salary==w.salary){ return true ; } } } return false; } public void work() {//普通方法 // TODO Auto-generated method stub System.out.println(name+"work"); } }
package org.jsoft.zouye;
import java.util.ArrayList; import java.util.Iterator; import java.util.List;
public class ListTest { public static void main(String[] args) { List li=new ArrayList();//引用List Worker w1=new Worker("zhang3",18,3000);//zhang3的对象 Worker w1_2=new Worker("zhao6",24,3300);//zhao6的对象 Worker w2=new Worker("li4",25,3500);//li4的对象 Worker w3=new Worker("wang5",22,3200);//wang5的对象 li.add(w1);//将此元素添加到集合中 li.add(w1_2);//将此元素添加到集合中 li.add(w2);//将此元素添加到集合中 li.add(w3);//将此元素添加到集合中 li.remove(3);//删除wang5 for(int i=0;i<li.size();i++){//循环输出集合的元素 System.out.println(li.get(i)); } //利用迭代遍历,调用work方法 System.out.println("用迭代方法"); Iterator it=(Iterator) li.iterator(); while(it.hasNext()){ Object obj=it.next(); Worker ww=(Worker)obj; ww.work(); } }
}
测试
这个工人的名字是+zhang3,年纪是:18,他的工资是:3000.0 这个工人的名字是+zhao6,年纪是:24,他的工资是:3300.0 这个工人的名字是+li4,年纪是:25,他的工资是:3500.0 用迭代方法 zhang3work zhao6work li4work