题目
创建一个list,在list中增加三个工人,基本信息如下:
姓名 年龄 工资
zhang3 18 3000
li4 25 3500
wang5 22 3200
在li4之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300
删除wang5的信息
代码部分:
package oop.lesson.text3.text3;
/**
* 工人类
*/
public class Worker {
private String wname;//姓名
private int wage;//年龄
private int salary;//工资
/** 有参构造方法 */
public Worker(String wname, int wage, int salary) {
this.wname = wname;
this.wage = wage;
this.salary = salary;
}
/** get(),set()方法 */
public String getWname() {
return wname;
}
public void setWname(String wname) {
this.wname = wname;
}
public int getWage() {
return wage;
}
public void setWage(int wage) {
this.wage = wage;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
}
package oop.lesson.text3.text3;
/**
* 测试类
*/
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Text {
public static void main(String[] args) {
List<Worker> list = new ArrayList<Worker>();//list集合
/**创建工人类对象并调用其构造方法*/
Worker w1 = new Worker("zhang3",18,3000);
Worker w2 = new Worker("li4",25,3500);
Worker w3 = new Worker("wang5",22,3200);
/** list集合添加对象 */
list.add(w1);
list.add(w2);
list.add(w3);
/** 获取list集合中姓名为li4的工人类对象下标 */
Iterator it = list.iterator();
int subscript1 = 0;
int subscript2 = 0;
while(it.hasNext()){
Worker worker = (Worker) it.next();
if(worker.getWname().equals("li4")){
subscript1 = list.indexOf(worker);
System.out.println("姓名是li4的工人下标获取成功");
}
}
/** 在指定下标下为list集合添加数据 */
Worker w4 = new Worker("zhao6",24,3300);
list.add(subscript1,w4);
System.out.println("添加成功");
/** 获取list集合中姓名为li4的工人类对象下标 */
it = list.iterator();//注:使用过迭代器后,再次使用需要使用一个新的迭代器
while(it.hasNext()){
Worker worker = (Worker) it.next();
if(worker.getWname().equals("wang5")){
subscript2 = list.indexOf(worker);
System.out.println("姓名是wang5的工人下标获取成功");
}
}
/** 删除指定下标的数据 */
list.remove(subscript2);
System.out.println("删除成功");
/** 使用迭代器循环遍历list集合 */
it = list.iterator();
while(it.hasNext()){
Worker worker = (Worker) it.next();
System.out.print(worker.getWname()+" ");
System.out.print(worker.getWage()+" ");
System.out.print(worker.getSalary());
System.out.println();
}
}
}
注:list集合使用迭代器使用过后,再次使用应重新加载一次迭代器