Java-集合 list对象进行指定位置插入、删除、迭代、遍历输出(具体习题讲解)

原题:

  • 创建一个 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("工人要工作");
}
}

 

输出结果:

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值