继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

小白日记之Map篇,增删改查

慕神guang
关注TA
已关注
手记 4
粉丝 9
获赞 14

图片描述

图片描述

图片截取自imooc
Map
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。
映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如 TreeMap 类;
另一些映射实现则不保证顺序,如 HashMap 类。
HashMap
基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。
此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
put(K key, V value) 改和增 在此映射中关联指定值与指定键。
其泛型HashMap<K,V>
K - 此映射所维护的键的类型
V - 所映射值的类型

package Y1_29;
import NormalClass.*;
import java.util.*;
//将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
//Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。
//映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如 TreeMap 类;
//另一些映射实现则不保证顺序,如 HashMap 类。 
//查get(Object key)注意key为键值不能是value 删remove(Object key)
//不太懂keySet() 可能是查,:返回此映射中包含的键的 Set 视图。

//HashMap
//基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。
//此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 
//put(K key, V value) 改和增 在此映射中关联指定值与指定键。
//其泛型HashMap<K,V>
//K - 此映射所维护的键的类型
//V - 所映射值的类型
public class MapTest {

    public static void main(String[] args) {
        MapTest mt = new MapTest();
        Map<String,Student> map = new HashMap<String, Student>();
        Student stu1 = new Student("WG","1512010015");

        mt.testAdd(map, stu1,"001");
        mt.testAdd(map, new Student("ZY","1512010016"),"002");
        mt.testAdd(map, new Student("ZS","1512010017"),"003");
        mt.testAdd(map, new Student("LS","1512010018"),"004");

        mt.testShowAll(map);
        //增删改查
        mt.testShow(map, "002");
        mt.testDelete(map, "001");
        mt.testChange(map, "003", new Student("修改!","1512010017"));
        mt.testShow(map, "002");

        mt.testShowAll(map);

    }
    public void testAdd(Map<String, Student> map,Student stu,String key)
    {
        if(!map.containsKey(stu))
        {
            map.put(key, stu);
            System.out.println("加入成功!");
            Student temp = map.get(key);
            System.out.println("姓名:" + temp.getName() + "学号:" + temp.getId());
        }
        else{
            System.out.println("已经存在!");
        }
    }
    //删除学生信息
    public void testDelete(Map<String,Student> map,String id)
    {
        if(map.get(id) != null)
        {
            map.remove(id);
            System.out.println("删除成功");
        }
    }
    //修改学生信息用replace或者put
    public void testChange(Map<String,Student> map,String id,Student stu)
    {
        if(map.get(id) != null)
        {
            map.replace(id, stu);
            System.out.println("修改成功");
        }
    }
    //查询一个Map中的一个元素
    public void testShow(Map<String,Student> map,String key)
    {
        if(map.get(key) != null)
        {
            Student stu = map.get(key);
            System.out.println("所查询结果 姓名:"+stu.getName() + "学号:"+stu.getId());
        }
    }
    public void testShowAll(Map<String,Student> map)
    {
        //键值的Set集
        Set<String> set = map.keySet();
        System.out.println("----------**学生信息表**-------------");
        for (String str : set) {
            System.out.println("姓名:" + map.get(str).getName() + "学号:" + map.get(str).getId());
        }
    }
}

其中Student是普通的Student类,可以自己构造。
图片描述

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP