原题:
- 创建一个 List,在 List 中增加三个工人,基本信息如下:
- 姓名 年龄 工资
- zhang3 18 3000
- li4 25 3500
- wang5 22 3200
- 工人有一个行为work。
- 在 li4 之前插入一个工人,信息为:姓名: zhao6,年龄: 24,工资3300
- 删除 wang5 的信息
- 利用 for 循环遍历,打印 List 中所有工人的信息
- 利用迭代遍历,对 List 中所有的工人调用 work 方法。
- 判断该列表中是否包含姓名为张三,年龄18,工资3000的工人信息。
- 在li4后面插入一个工人信息为:姓名: zhao6,年龄: 24,工资3300
思路:创建一个worker类实现工人要求和一个list类(类名为workdemo)来 进行list操作
代码:list类
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
public class WorkDemo {
public static void main(String[] args) {
ArrayList<Worker> list = new ArrayList<Worker>();
/*
* 插入元素
*/
Worker a1 = new Worker("zhang3",18,3000);
Worker a2 = new Worker("li4",19,3500);
Worker a3 = new Worker("wang5",18,3200);
list.add(a1);
list.add(a2);
list.add(a3);
for(Worker i : list)
{
System.out.println(i);
}
/*
* 执行插入操作,遍历输出
* 题目要求:在 li4 之前插入一个工人,信息为:姓名: zhao6,年龄: 24,工资 3300
* 在li4后面插入一个工人信息为:姓名: zhao6,年龄: 24,工资 3300
*/
System.out.println("执行插入操作:");
list.add(1,new Worker("zhao6",24,3300));
list.add(3,new Worker("zhao6",24,3300));
for(Worker i : list)
{
System.out.println(i);
}
System.out.println("执行删除操作:");
/*
* 用增强for循环遍历查找删除对象的元素,然后删除对象
* 在循环过程中从List中删除非基本数据类型以后,继续循环List时会报ConcurrentModificationException
* 但删除之后马上break就不会出现异常(应该是元素的索引变化的问题)
* 题目要求: 删除 wang5 的信息
*/
for(Worker worker : list)
{
if(worker.getName().equals("wang5"))
list.remove(worker);
break;
}
for(Worker i : list)
{
System.out.println(i);
}
Iterator<Worker> iterator = list.iterator();
System.out.println("使用迭代器操作:");
while(iterator.hasNext()){
Worker ite = iterator.next();
System.out.println(ite.getName());
ite.work();
}
}
}
worker类
public class Worker {
private String name;
private int age;
private double salary;
public Worker() {
super();
}
public Worker(String name, int age, double salary) {
super();
this.name = name;
this.age = age;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Worker [name=" + name + ", age=" + age + ", salary=" + salary + "]";
}
public void work()
{
System.out.println("工人要工作");
}
}