java 泛型和集合_Java 泛型与集合

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());

}

}

}

cd9a7e28f82dd6243dbdbd558f62001c.png

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);

}

}

}

bf3ab3f60d5beea0c51aba635a399934.png

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);

}

}

c9d739812f28b3c9f85a3af1076ddcf8.png

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);

}

}

}

}

a8b5db23168901ba3bd13b34a9ee89ad.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值