java实例_集合类ArrayList, HashMap [实现添加信息,查找删除]

写一个类 CollectionTest,有一个无参构造器,在这个构造器中实现以下功能,最后在 main
中 new CollectionTest 来调用构造器(也就是调用下面的功能),【当然以下代码直接写在 main
中也是可以】:
(二)ArrayList 实验:
1.New 一个 ArrayList 对象,比如:ArrayList<String> list = new ......(这里你自己写);
2.调用 add 方法来存储姓名:"James","Tom","Steven","Alice":
3.仿照以下代码来输出 ArrayList 中所有的姓名:特别特别注意下面的 list 是 ArrayList 的对
象变量
for(int count=0;count<list.size();count++)
System.out.println(list.get(count)+" ");//从 arrayList 中读取元素
4.使用迭代器来输出 ArrayList 中所有的姓名,并且当姓名是 Tom 时,删除 Tom,迭代器用法
例子:
Iterator iter=list.iterator(); //声明一个迭代器,来访问 list 的内容
//调用 iterator 的 hasNext 方法判断 Collection 是否还包含元素
while(iter.hasNext())
{
//调用 iterator 的 next 方法获得下一个元素的引用
String element = (String) iter.next();
System.out.println(element +” ”);if( ….) //如果是 Tom 则删除
iter.remove();
}
5.调用 sort 方法进行排序
6.使用 for each 循环来输出 ArrayList 中所有的姓名,看看 Tom 是否被删除了
(三)LinkedList 实验:
在上面实验的基础上,继续添加代码:用链表 LinkedList 代替 ArrayList 重做(一)实验
(四)在上面实验基础上继续添加 HashMap 实验:
HashMap 存放的是 key/value 对
1.先定义一个内部类 Student,里面 fields 有:学号 String、姓名 String、年龄 int,方法:有
参和无参构造器
2.利用 HashMap 添加以下学生(key 为学号,value 为学生):
学号:15H002,姓名:孙悟空,年龄 2000
学号:15H001,姓名:唐僧,年龄 40
学号:15H003,姓名:猪八戒,年龄 1000
请把这些学生放入的到 HashMap 对象中去,下面是参考代码:
Map<String, Employee> staff = new HashMap<>(); //这里的 key 为 String,value 为 Employee
Employee harry = new Employee (......);
staff.put("987-98-9996", harry) //或 staff.put("987-98-9996", new Employee(…));
3.根据 key(学号)查找学号为 15H003 和 15H004 的学生,如果存在则输出其学号、姓名、
年龄信息,否则输出相应的提示信息。
4.输出所有学生的信息,代码参考:
for(Map.Entry<String, Employee> entry : staff.entrySet())
{
String key = entry.getKey();
Employee value = entry.getValue();
do something with key, value
}
5.移除唐僧(可根据其学号或者姓名删除)
6.把 HashMap 变成数组,并输出每个数组元素的信息(学号、姓名、年龄),参考例子:
Object[] values = staff.values().toArray();
如果无法输出学号、姓名和年龄,请在 Student 类中覆盖(重写)方法 toString,在该方法
中输出相应的信息。
 
代码实现

package Lab9;
import java.util.*;
class student{

String name;
int age;

public void setdata(String name,int age)
{

this.name = name;
this.age = age;
}
public String toString() {
return name +age;


}
}

public class Lab9 {

public static void main(String[] args) /*throws Exception*/{

/*Arraylist*/
ArrayList<String> list = new ArrayList<String>();

/*linkedlist*/
// LinkedList list=new LinkedList();
list.add("James");
list.add("Tom");
list.add(1, "Steven"); // 此条语句将会把“Steven”字符串增加到list的第2个位置。
list.add("Alice");
System.out.println(list.toString());

// 显示数组链表中的内容
Iterator iter=list.iterator(); //声明一个迭代器,来访问 list 的内容
//调用 iterator 的 hasNext 方法判断是否还包含元素
while(iter.hasNext())
{
//调用 iterator 的 next 方法获得下一个元素的引用
String element = (String) iter.next();


if(element =="Tom") //如果是 Tom 则删除
iter.remove();
}

System.out.println("删除后");
// for (String str : list) {
// System.out.print(str + " ");//arraylist可用
// }
System.out.println(list);

/*------------------------------------------------------------------*/
/* 我是分界线= = */




Map<String,student> Stu = new HashMap<>();
student[] s = new student[4];//创建数组
s[0] = new student();//实例化
s[1] = new student();
s[2] = new student();

s[0].setdata("孙悟空",2000);
s[1].setdata("唐僧",40);
s[2].setdata("猪八戒",1000);

Stu.put("15H002",s[0]);
Stu.put("15H001",s[1]);
Stu.put("15H003",s[2]);

System.out.println("");
System.out.println(Stu);
System.out.println("删除后");

Stu.remove("15H001");

Iterator<String> iterator =Stu.keySet().iterator();
System.out.println(Stu);
// while(iterator.hasNext())
// {
// Object key = iterator.next();
// System.out.println(Stu.get(key));//通过键拿值
// }

}

}

posted on 2019-06-25 19:02  小涛同志v5  阅读(1367)  评论(0编辑  收藏  举报

导航