1、List练习,请用泛型的写法来完成。
已知有一个Worker 类如下:
public class Worker {
private int age;
private String name;
private double salary;
public Worker (){}
public Worker (String name, int age, double salary){
this.name = name; this.age = age;
this.salary = salary; }
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; }
public void work(){
System.out.println(name + “ work”); }
}
完成下面的要求
1) 创建一个List,在List 中增加三个工人,基本信息如下:
姓名 年龄 工资
zhang3 18 3000
li4 25 3500
wang5 22 3200
2) 在li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300
3) 删除wang5 的信息
4) 利用for 循环遍历,打印List 中所有工人的信息
5) 利用迭代遍历,对List 中所有的工人调用work 方法。
public classWorker {private intage;privateString name;private doublesalary;publicWorker() {
}public Worker(int age, String name, doublesalary) {super();this.age =age;this.name =name;this.salary =salary;
}public intgetAge() {returnage;
}public void setAge(intage) {this.age =age;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}public doublegetSalary() {returnsalary;
}public void setSalary(doublesalary) {this.salary =salary;
}
@OverridepublicString toString() {return "Worker [age=" + age + ", name=" + name + ", salary=" + salary + "]";
}
}
importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;public classTestWorker {public static voidmain(String[] args) {
List list = new ArrayList<>();
list.add(new Worker(18,"zhang3",3000));
list.add(new Worker(25,"li4",3500));
list.add(new Worker(22,"wang5",3200));
list.add(1,new Worker(24,"zhao6",3300));
list.remove(3);for(int i = 0;i
{
System.out.println(list.get(i));
}
System.out.println("迭代器方式");
Iterator it=list.iterator();//判断能否移动
while(it.hasNext())
{//移动指针到下一条数据,同时获取数据
Worker p=it.next();
System.out.println(p.toString());
}
}
}
2、List集合遍历
在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口Iterator。为了使初学者熟悉Iterator迭代器的使用,本案例将演示如何使用Iterator迭代器遍历集合中的元素。
设计思路(实现原理)
1) 编写一个类Example02
2) 在类中定义一个List集合,并向集合中添加数据
3) 通过调用List集合的iterator()方法获得迭代器对象
4) 在while循环条件中使用hashNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合末尾,停止遍历元素
import java.util.*;public classExample02 {public static voidmain(String[] args) {
List list = new ArrayList();
list.add("abc1");
list.add("abc2");
list.add("abc3");
list.add("abc4");
Iterator it =list.iterator();while(it.hasNext()) {
Object obj=it.next();
System.out.println(obj);
}
}
}
3、去除集合中的重复元素。
(1)编写一个类,类中有二个方法,一个能够去除给定ArrayList中的重复元素,并得到新的ArrayList;一个能够输出集合,使得在运行过程中能观察到集合中元素的变化。
(2)编写一个主类,测试上述类的功能,并给出测试结果。
importjava.util.ArrayList;importjava.util.HashSet;public classRemoveByHashSet {public static voidmain(String[] args){
ArrayList l=new ArrayList();
l.add("java");
l.add("php");
l.add("C");
l.add("java");
l.add("C");
System.out.println(l);
HashSet s=new HashSet(l);
ArrayList al=new ArrayList(s);
System.out.println(al);
}
}
HashMap的使用,请用泛型的写法。
已知某学校的教学课程内容安排如下:
完成下列要求:
(1) 使用一个Map,以老师的名字作为键,以老师教授的课程名作为值,表示上述课程安排。
(2) 增加了一位新老师Allen 教JDBC
(3) Lucy 改为教CoreJava
(4) 用两种方式遍历Map,输出所有的老师及老师教授的课程
(5) 利用Map,输出所有教JSP 的老师。
import java.util.*;public classCourseMap {public static voidmain(String[] args) {
Map map = new HashMap();
map.put("Tom","CoreJava");
map.put("John","Oracle");
map.put("Susan","Oracle");
map.put("Jerry","JDBC");
map.put("Jim","Unix");
map.put("Kevin","JSP");
map.put("Lucy","JSP");
System.out.println("Map修改前遍历:");
Set keySet =map.keySet();for(String key : keySet){
System.out.println(key+"\t"+map.get(key));
}
map.put("Allen","JDBC");
map.put("Lucy","CoreJava");
System.out.println("Map修改后遍历:");
Iterator iterator =keySet.iterator();while(iterator.hasNext()) {
String key=(String) iterator.next();
System.out.println(key+"\t"+map.get(key));
}
System.out.println("教授JSP的老师姓名:");for(String key : keySet){if(map.get(key).equals("JSP")){
System.out.println(key);
}
}
}
}