get方法输入ID后,得到的是相对于Student对象,因为前面泛型已经规定好了
Map<String,Student> students=new HashMap<String,Student>();
构造方法分为有参和无参的构造方法;构造方法在我们创建这个类的对象的时候调用,构造方法是每个类都有的,如果我们没有创建构造方法,系统就会默认为我们创建一个无参的构造方法。
Map接口
1. Map接口提供了一中映射关系,其中的元素是键值对(key-value)的形式存储的,能够实现根据Key快速查找value。Key-value可以是任何对象,是以Entry类型的对象实例存在的。
2.Key是不可以重复的,Value是可以重复的。Key-value都可以为null,不过只能有一个key是null。
3.map支持泛型,Map<K,V>
4.每个键最多只能映射到一个值
5.Map接口提供了分别返回key值集合、value值集合以及Entry(键值对)集合的方法
6.通过put<K key,V value>,remove<Object key>操作数据
7.HashMap中的Entry对象是无序排列的,HashMap是Map的一个重要实现类,也是最常用的,基于哈希表是实现
右键单击JDK_API_1_6_zh_CN.CHM,点"属性",在弹出窗口点"解除锁定";然后就可以看到内容了
students.get(ID)返回的是一个Student(value)的一个对象, .name 返回的是该对象的属性。
如果你返回的是null的话,可以看看该ID(key)对应的Student(value)对象是否已经存入Map集合中。
关键是理解,要用的时候可以查查API,不需要会背,用多了也记住了
如果基础不好的话,建议还是要找本书来看,这样会了解的全面一些。网上的课程连贯性不是太好,而且往往偏重于编程技巧而可能忽略掉一些重要的基础知识。
入门的话建议“新手学Java7编程”,大牛老外写的,内容详实,学完基础差不多就坚实了。我当年也是这么起步的。
if(st==null)才进入if语句块,也就是说现在st==null。而现在使用的newStudent对象作为传入的参数,所以不能替换
没错。
其实Collection和Map都是存储的接口。在计算机世界中,数据的存储是十分重要的部分,仔细想想就知道了,我们PC得以运行靠的就是已经存储在其上的信息了。
然而存储的目的是为了使用,所以查找效率也很重要。对于简单的List来说,如果是数组实现,那么查找效率是O(n)。HashMap基于哈希算法,可以达到常熟级别的查找效率,这是不可思议的。
比如现在你需要在全国找一个人,直接查身份证号就可以,身份证号就相当于这个唯一的键值。而采用普通数组,那就相当于需要一个一个检查,在数据量较大的情况下,这会大大降低系统效率。
建议在学习语言期间同时学学数据结构,这样有利于我们写出真正高质量的代码。
说的好实际