概述
Map专门用来处理键值映射数据的存储。
常用方法:
1.put(Object key,Object value) 添加一对键值
2.get(Object key) 根据键返回相关的值,如果不存在指定的键,则返回空值。
3.remove(Object key) 删除由指定的键映射的键值对
4.size() 返回元素个数
5.keySet() 返回键的集合
6.value() 返回值得集合
7.containsKey(Object key) 如果存在由指定的键映射的键值对,返回true。
实现代码:
建立学生对象:
package imooc;
import java.util.HashSet;
import java.util.Set;
//学生类
public class Student {
public String id;
public String name;
public Set courses;
public Student(String id,String name){
this.id=id;
this.name=name;
this.courses =new HashSet();
}增删改查:
package imooc;
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 student;
//在构造器中初始化student属性
public mapTest(){
student=new HashMap();
}
//测试添加,从键盘输入学生id,判断是否占用,并输出提示。把学生添加到studnet属性中。
public void testPut(){
Scanner input=new Scanner(System.in);
for(int i=0;i<3;){
System.out.println("输入学生id");
String ID=input.next();
Student stuid=student.get(ID);
if(stuid==null){
System.out.println("请输入学生姓名");
String name=input.next();
//创建一个新的学生对象
Student newStudent=new Student(ID,name);
student.put(ID, newStudent);
System.out.println("成功添加学生:"+student.get(ID).name);
i++;
}else{
System.out.println("该学生ID已存在");
}
continue;
}
}
//测试Map的keySet方法
public void testKeyset(){
//keySet方法,返回Map中的所有key的Set集合。
Set keyset=student.keySet();
//取得student的容量
System.out.println("总共有"+student.size()+"名学生");
//遍历keyet,取得每一个键 值,通过get方法取得value值。
for(String id:keyset){
Student st=student.get(id);
if(st!=null){
System.out.println(st.id+" "+st.name);
}
}
}
//测试删除
public void testRemove(){
Scanner input=new Scanner(System.in);
while(true){
System.out.println("请输入要删除学生的ID");
String ID=input.next();
Student st=student.get(ID);
if(st==null){
System.out.println("该ID不存在");
continue;
}
student.remove(ID);
System.out.println("成功删除学生:"+st.name);
break;
}
}
//通过entrySet方法遍历Map
public void testentrySet(){
//通过entrySet方法,返回Map中的所有键值对
Set> entrySet=student.entrySet();
for(Entry entry:entrySet ){
System.out.println("取得键"+entry.getKey()+" "+"取得值"+entry.getValue().name);
}
}
//测试修改
public void xiugai(){
Scanner input=new Scanner(System.in);
while(true){
System.out.println("请输入需要修改的学生的ID");
String ID=input.next();
Student st=student.get(ID);
if(st==null){
System.out.println("该ID不存在");
continue;
}
System.out.println("当前所要修改的ID对应的学生:"+st.name);
System.out.println("请输入学生姓名:");
String name=input.next();
Student newstu=new Student(ID,name);
student.put(ID,newstu );
System.out.println("修改成功");
break;
}
}
//测试Map中是否包含某个key或value
public void testMapContains(){
System.out.println("输入要查询的学生ID:");
Scanner input=new Scanner(System.in);
String id=input.next();
System.out.println("学生映射表中是否包含键"+id+" "+student.containsKey(id)+
"对应的学生为"+student.get(id).name);
System.out.println("输入要查找的学生名字:");
String name=input.next();
System.out.println("学生映射表中是否存在学生"+name+" "+
student.containsValue(new Student(null,name)));
}
public static void main(String[] args) {
mapTest it=new mapTest();
it.testPut();
it.testKeyset();
//it.testRemove();
//1it.xiugai();
//it.testentrySet();
it.testMapContains();
}
}
最后
以上就是单身白云为你收集整理的java map 输入 查询 修改_通过Map对数据进行增删改查的全部内容,希望文章能够帮你解决java map 输入 查询 修改_通过Map对数据进行增删改查所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复