Map问题

来源:5-2 学生选课---使用 Map 添加学生

Anneyth

2015-11-30 19:16

Map中<key,value>,key保存的是ID,value存的是一组ID和name吗?  映射具体在哪里有应用到?

写回答 关注

1回答

  • sxian_wang
    2015-11-30 21:46:06
    已采纳

    Map中的<Key,Value>是两个Object对象,也就是说,任何对象都可以充当这对Key或Value,至于是什么具体的对象,这需要按照你的业务逻辑来进行设计。

    什么是Map?其实就是一种映射关系。何为映射?就是Key与Value一一对应的关系,我们可以通过Key查找到我们想要的数据,亦即Value。我们可以把Map和数组来进行简单的对比:

    现在,有十个学生,我们想把这十个学生的班级记录下来

    String[] arr = new Array[10];
    Map<String,Strng> map = new HashMap<String,String>();

    如果是使用数组,我们只能用数字索引的办法去储存或者读取数据,也就是说,你得去考虑数组的第几个元素是谁。但是我们可以使用Map来解决这个问题:用学生的姓名来作为Key,班级作为Value:

    String stuName = "张三";
    String class   = "高三一班";
    map.put(stuName,class);

    就可以将这组数据储存到Map里面。当你想要使用的时候直接用:

    String newClass = map.get("张三");

    来得到张三的班级。而不用去考虑顺序。

    如果你想储存更大的信息。你可以建一个Student的类,来储存学生信息,把Map的Value设置成Student

    class Student{
        private String name;
        private String class;
        private int age;
        private String studentNum;
        ...
    }
    
    Map<String,Student> map = new HashMap<String,Student>();
    Student student = new Student();
    map.put("张三",student);//保存张三这个对象

    取的时候:

    Student stu = map.get("张三");

    然后你就能对张三这个Student对象进行操作了。事实上Map<K,V>中的K,V就是泛型。不光是Map,在Java中List、Set对象都是这样的实习机制,你可以灵活的使用泛型来实现自己的业务。就像下面的这些例子:

    Map<Map<String,String>,Map<String,String>> map = new HashMap<Map<String,String>,Map<String,String>>();
    Map<String, ArrayList<String>> map1 = new HashMap<String,ArrayList<String>>();
    ...

    这要理解了这些,就能够灵活的使用了。

    Anneyt...

    非常感谢!

    2015-12-01 08:31:41

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409765 学习 · 4543 问题

查看课程

相似问题