一、Map概括
1、Map提供的是一种映射的关系,其中元素是以键值对的形式存在的,能够实现根据key快速查找value,
2、Map中的键值对以Entry类型的对象实例形式存在
3、键值不可以重复,但是value可以重复
4、存在泛型
二、实例讲解
package course.com.coueses;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
public class MapTest {
public Map <String,Student>students;
public MapTest(){
this.students = new HashMap<String,Student>();
}
public void testPut(){//存入数据
//创建一个Scanner对象,获取输入学生的id和姓名
Scanner console = new Scanner(System.in);
int i=0;
while (i<3){
System.out.println("请输入学生ID");
String ID = console.next();
//判断ID是否存在
Student st = students.get(ID);
if(st==null){
//提示输入学生姓名
System.out.println("请输入学生姓名");
String name = console.next();
//创建学生对象
Student newstudent =new Student(ID,name);
//添加学生
students.put(ID, newstudent);
}else{
System.out.println("该学生ID已经被占用");
}
i++;
}
}
public void TestGet(){//提取数据
//通过KeySet方法,返回Set中所有键的Set集合
Set<String> keySet = students.keySet();
//遍历keySet,取得每一个键,在调用get方法获得每一个键所对应的值
for (String stuId:keySet){
Student st = students.get(stuId);
if (st!=null){
System.out.println(st.id+" "+st.name);
}
}
}
public void testremove(){//删除元素
Scanner console = new Scanner(System.in);
//提示需要删除的学生对象
System.out.println("请输入需要删除学生的ID");
String id = console.next();
Student st = students.get(id);
if (st==null){
System.out.println("该学生不存在");
}else{
students.remove(id);
System.out.println("成功删除学生"+st.name);
}
}
public void testEntrySet(){//删除元素
Set<Entry<String, Student>> entrySet = students.entrySet();
for (Entry<String,Student>entry:entrySet){
System.out.println(entry.getKey()+" "+entry.getValue().name);
}
}
public void testChange(){
//提示需要修改的学生ID
System.out.println("请输入要修改的学生ID");
Scanner console = new Scanner(System.in);
while(true){
String id =console.next();
Student st = students.get(id);
if (st==null){
System.out.println("该学生不存在");
continue;
}else{
System.out.println("请输入新的学生姓名");
String name = console.next();
Student stt = new Student(id,name);
students.put(id,stt);
System.out.println("修改成功");
break;
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MapTest ll = new MapTest();
ll.testPut();
ll.TestGet();
ll.testremove();
ll.testEntrySet();
ll.testChange();
ll.testEntrySet();
}
}