A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天我们学习了Map集合,请根据自己的理解回答下面问题:
1.Map接口下有几个子类,各自有什么特点?
2.目前为止,我们所学的遍历map集合有几种方式?
3.请用自己的语言描述你所了解的集合体系

68 个回复

倒序浏览
本帖最后由 郑海波 于 2019-3-25 21:32 编辑

1.Map接口下有几个子类,各自有什么特点?
Map接口下的子类有3个:
HashMap:1.查询速度快,因为底层结构是哈希表;2.无序集合;
LinkedHashMap:1.底层结构是哈希表加链表,是一个有序集合;2.继承自HashMap,查询速度快;
Hashtable:1.底层结构是哈希表;2.线程比较安全;3.单线程集合,速度慢,在JAVA1.2后被其他集合取代

2.目前为止,我们所学的遍历map集合有几种方式?
方式一:通过key键来查找value值
        步骤:1.使用MAP集合中的keySet()方法把所有key存储到一个集合中
                  2.遍历这个集合,获取每一个key(增强for或者迭代器)
                  3.通过get(key)方法获取value
                  4.打印
方式二:使用entry对象来遍历方法
        步骤:1.使用entrySet()新建一个Set集合,存储entry对象
                  2.遍历这个集合,获取每个ntry对象(增强for或者迭代器)
                  3.使用 对象.getKey()和对象.getValue()  方法获取key键和value值
                  4.打印

3.请用自己的语言描述你所了解的集合体系
集合体系氛围单列集合和双列集合
单列集合里最大的是Collection

Collection有两个实现类:
1.List集合:有序,有索引值,允许重复元素存储
    List集合有三个子类:
       1.ArrayList集合:查询快,增删慢,数据结构为数组
       2.LinkedList集合:增删快,查询慢,数据结构为链表
       3.Vector集合:安全性高,效率低,JAVA1.2后被ArrayList取代
2.Set集合:没有索引,不允许重复元素存储  
    Set集合下有个子类——HashSet集合:不允许存储重复元素,没有索引,无序集合,数据结构为哈希表(数组+链表/红黑树)
    HashSet集合下有个子类——LinkedHashSet集合:在哈希表的基础上多了一条链表来记录元素顺序,因此LinkedHashSet集合是有序的,但是也不允许存储重复元素,没有索引

双列集合里最大为Map:一个元素有两个值key和value;key和value的数据类型可以相同,也可以不同;key是不允许重复的,value是可以重复的;key和value是一一对应
Map有两个实现类:
1.HashMap集合:数据结构为哈希表,也是一个无序集合,多线程,速度快
       HashMap集合有个子类——LinkedHashMap:数据结构:哈希表上多了条链表,因此有序
2.Hashtable集合:底层也是一个哈希表,安全性高,但是是单线程,速度慢,JAVA1.2后被其他集合取代


回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
答:
        HasMap集合:
                实现了Map接口;
                底层是哈希表,查询非常快;
                集合无序;
        LinkedHasMap集合:
                继承HasMap集合;
                底层是哈希表+链表;
                集合有序;
        Hashtable:
                实现了Map接口;
                底层是一个哈希表;
                是一个线程安全的集合,即单线程,速度慢;
2.目前为止,我们所学的遍历map集合有几种方式?
答:
        两种:
        通过键找值遍历:
                通过keyset方法,取出所有的键,存储进Set集合中;
                然后用增强for或迭代器遍历Set集合;
                最后用get方法 ,通过键找到在Map中对应的值,进行打印输出;
        通过键值对遍历:
                先通过entrySet方法,将Mpa集合内每个键值对对应entry存入一个Set集合中;
                然后在通过对Set进行增强for或者迭代器遍历;
                最后用getKey和getValue方法获得键和值,以进行打印输出;
3.请用自己的语言描述你所了解的集合体系
答:
集合分为两大类:单列集合(Collection)和算列集合(Map);到现在学习到的集合体系如下:
        Collection接口:所有单列集合最顶层的接口,定义所有单列集合共性的方法;
                List集合:集合有序,且由索引值;允许储存元素重复;
                        Arraylist集合:底层数组结构,增删慢,查询快;
                        LinkedList集合:底层是链表结构,增删快,查询慢;
                        Vector集合:数据存储效率低,但安全性高(1.2版本后被ArrayList取代了);
                set集合:集合无索引,且不允许元素重复;
                        HashSet集合:底层是哈希表结构,查询非常快;集合无序.无索引,元素不可重复;
                                LinkedHashSet集合:底层是一个哈希表+链表;集合有序、无索引元素不可重复;
        Map接口:双列集合的最顶层的接口,一个元素包含了键和值两个内容;键和值的类型可不同;键不能重复,值可重复;键和值必须一一对应;
                HasMap集合:底层是哈希表,查询非常快;集合无序;
                        LinkedHasMap集合:底层是哈希表+链表;集合有序
                Hashtable集合:底层是一个哈希表,是一个线程安全的集合,即单线程,速度慢(1.2版本之后被HashMap取代了);
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
答:
        HasMap集合:
                实现了Map接口;
                底层是哈希表,查询非常快;
                集合无序;
        LinkedHasMap集合:
                继承HasMap集合;
                底层是哈希表+链表;
                集合有序;
        Hashtable:
                实现了Map接口;
                底层是一个哈希表;
                是一个线程安全的集合,即单线程,速度慢;
2.目前为止,我们所学的遍历map集合有几种方式?
答:
        两种:
        通过键找值遍历:
                通过keyset方法,取出所有的键,存储进Set集合中;
                然后用增强for或迭代器遍历Set集合;
                最后用get方法 ,通过键找到在Map中对应的值,进行打印输出;
        通过键值对遍历:
                先通过entrySet方法,将Mpa集合内每个键值对对应entry存入一个Set集合中;
                然后在通过对Set进行增强for或者迭代器遍历;
                最后用getKey和getValue方法获得键和值,以进行打印输出;
3.请用自己的语言描述你所了解的集合体系
答:
集合分为两大类:单列集合(Collection)和算列集合(Map);到现在学习到的集合体系如下:
        Collection接口:所有单列集合最顶层的接口,定义所有单列集合共性的方法;
                List集合:集合有序,且由索引值;允许储存元素重复;
                        Arraylist集合:底层数组结构,增删慢,查询快;
                        LinkedList集合:底层是链表结构,增删快,查询慢;
                        Vector集合:数据存储效率低,但安全性高(1.2版本后被ArrayList取代了);
                set集合:集合无索引,且不允许元素重复;
                        HashSet集合:底层是哈希表结构,查询非常快;集合无序.无索引,元素不可重复;
                                LinkedHashSet集合:底层是一个哈希表+链表;集合有序、无索引元素不可重复;
        Map接口:双列集合的最顶层的接口,一个元素包含了键和值两个内容;键和值的类型可不同;键不能重复,值可重复;键和值必须一一对应;
                HasMap集合:底层是哈希表,查询非常快;集合无序;
                        LinkedHasMap集合:底层是哈希表+链表;集合有序
                Hashtable集合:底层是一个哈希表,是一个线程安全的集合,即单线程,速度慢(1.2版本之后被HashMap取代了);
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
我们学习的Map子类有2个子类
(1)HashMap集合:其集合底层是哈希表结构,查询速度非常快;
HashMap集合是一个无序的集合,存储数据和取出数据的顺序可能不一致,并且Key的值不能重复,Value的值是可以重复
键和值可以存引用类型数据也可以存对象;为了要保证键的唯一性,需要重写键值的hashCode()方法和equals()方法;

(2)LinkedHashMao集合:
1.其集合底层是哈希表+链表(保证迭代的顺序)其是HashMap的子类所以Key和Value的值和存储的数据类型跟HashMap一致。
2.是一个有序的集合,存储数据和取出数据顺序是一致的

2.目前为止,我们所学的遍历map集合有几种方式?
目前所学的遍历map集合有两种方式:
(1)用键找值keySet方法遍历:
1.先获取Map中所以的键由于键是唯一的所以返回一个Set集合存储所以的键keyset()
2.遍历键的et集合得到每一个键
3.根据键get(K key)获取键对应的值。
(2)用键值对entrySet方法:
1.利用entrySet把Map集合中的Entry对象取出来存在一个Set集合中
2. 遍历包含键值对(Entry)对象的Set集合,得到每一个键值对(Entry)对象。
3. 通过键值对(Entry)对象,获取Entry对象中的键与值。 方法提示: getkey() getValue()
3.请用自己的语言描述你所了解的集合体系
因为整理格式问题用图片方式上传


回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
我们学习的Map子类有2个子类
(1)HashMap集合:其集合底层是哈希表结构,查询速度非常快;
HashMap集合是一个无序的集合,存储数据和取出数据的顺序可能不一致,并且Key的值不能重复,Value的值是可以重复
键和值可以存引用类型数据也可以存对象;为了要保证键的唯一性,需要重写键值的hashCode()方法和equals()方法;

(2)LinkedHashMao集合:
1.其集合底层是哈希表+链表(保证迭代的顺序)其是HashMap的子类所以Key和Value的值和存储的数据类型跟HashMap一致。
2.是一个有序的集合,存储数据和取出数据顺序是一致的

2.目前为止,我们所学的遍历map集合有几种方式?
目前所学的遍历map集合有两种方式:
(1)用键找值keySet方法遍历:
1.先获取Map中所以的键由于键是唯一的所以返回一个Set集合存储所以的键keyset()
2.遍历键的et集合得到每一个键
3.根据键get(K key)获取键对应的值。
(2)用键值对entrySet方法:
1.利用entrySet把Map集合中的Entry对象取出来存在一个Set集合中
2. 遍历包含键值对(Entry)对象的Set集合,得到每一个键值对(Entry)对象。
3. 通过键值对(Entry)对象,获取Entry对象中的键与值。 方法提示: getkey() getValue()

3.请用自己的语言描述你所了解的集合体系
整理知识点的格式问题由图片上传
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
答:HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法
2.目前为止,我们所学的遍历map集合有几种方式?
答:两种分别是,键找值方式:即通过元素中的键,获取键所对应的值;键值对方式:即通过集合中每个键值对(Entry)对象,获取键值对(Entry)对象中的键与值。
3.请用自己的语言描述你所了解的集合体系
答:主要分两大类,分别为:单列集合Collection接口、双列集合Map接口
单列Collection接口分两大类:List接口(有序、有索引值的方法、可以存储重复元素)Set接口(没有索引值、不能存储重复的元素)
List接口实现类有Vector集合、ArrayList集合、LinkedList集合;
Set接口实现类主要有hashSet集合和它的子集LinkedHashSet集合
双列Map集合使用键值对进行存储数据。常用子类有HashMap(存储数据采用的哈希表结构,元素的存取顺序不能保证一致)LinkedHashMap(HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构)
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?

HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需 要重写键的hashCode()方法、equals()方法。
LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。
通过链 表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的 hashCode()方法、equals()方法。

2.目前为止,我们所学的遍历map集合有几种方式?
keyset() 键找值和?entrySet() : 键值对对象
3.请用自己的语言描述你所了解的集合体系
Collection是所有集合的接口,他下面有两个比较重要的集合:List和Set集合,List集合下面也有三种比较重要的集合:ArratList,LinkedList和Vector;
Set下面也有三种比较重要的集合:HashSet LinkedHashSet和TreeSet。这些都是单身集合。还有一种Map集合是对象集合,顾名思义就是有两种元素的集合,
他的下面也有比较重要的三种集合:HashMap  LinkedHashMap和 Hashtable
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap:底层是一个哈希表,存取无序,不能存储重复元素
LinkedHashMap:底层是一个哈希表+链表,存取有序,不能存储重复元素
HashTable:底层是一个哈希表,存取无序,不能存储空键和空值,且是不同步的,效率较低,在JDK1.2之后被HashMap取代

2.目前为止,我们所学的遍历map集合有几种方式?
有两种方式,
a.使用keySet()方法获取键的集合,通过遍历键的集合同时通过get()获取对应值来遍历map
b.使用entrySet()方法获取包含所有键值对的集合,再遍历键值集合,使用entry对象的getKey()和getValue()方法来遍历map

3.

回复 使用道具 举报
陈鹏涛
今天我们学习了Map集合,请根据自己的理解回答下面问题:
1.Map接口下有几个子类,各自有什么特点?
    HashMap     linkedhashmap    Hashtable(3类)

    HashMap:
            HashMap集合底层是哈希表,查询速度特别的快

哈希表:数组+单向链表/红黑树,
            

hashmap集合是一个无序的集合,存储元素和取出元素的顺序有可能不同

   
    linkedhashmap:
           linkedhashmap集合底层是哈希表+链表


           linkedhashmap集合是一个有序的集合,存储元素与取出元素一致(有序的)



    Hashtable:
          Hashtable底层也是一个哈希表,是一个线程安全的集合,单线程集合。速度慢

2.目前为止,我们所学的遍历map集合有几种方式?
            2种
            1种:把map集合中的方法keyset()把map集合中所有的key拿出来放入set集合
                   中

遍历set集合,获取map集合的每一个key

通过key值找到对应的value值

           另一种: 使用entry对象的getkey()和getvalue()方法
3.请用自己的语言描述你所了解的集合体系
          Collection集合是:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口List与Set。
           list集合特点:
                  1有序的集合(存储的元素和取出的元素循序是一致 的)
         

         2索引的,包含了一些索引的方法

        
                  3可以重复元素

                  4.底层是数组+链表
            子类有:LinkedList  ArrayList  Vector
        LinkedList :
             1.底层是一个链表结构:查询慢,增删快
             2.里边包含了大量操作首尾元素的方法
       ArrayList:
              1底层是数组;
              2查询快,增删慢
       Vector:
             JAVA1.0的方法,数据存储效率较低,但是安全性高
           Set集合特点:
                  1.  不包含重复元素基于哈希表实现的
                  
2.没有带索引的方法

                  底层:底层是数组+链表/红黑树的结构
            子类有: Map  HashMap  linkedhashmap
             Map:map集合是一个双列集合,一个元素包含两个值(key,value)
-      
                           map集合中的元素,key和value的数据类型可以相同,也可以不同。

                           key是不允许重复的,value是可以重复的
- key与value是一一对应的

            HashMap


                      1HashMap集合底层是哈希表,查询速度特别的快

哈希表:数组+单向链表/红黑树,

               
      2hashmap集合是一个无序的集合,存储元素和取出元素的顺序有可能不同

           linkedhashmap


                     1linkedhashmap集合底层是哈希表+链表


                     2linkedhashmap集合是一个有序的集合,存储元素与取出元素一致(有序的)
回复 使用道具 举报
陈鹏涛
今天我们学习了Map集合,请根据自己的理解回答下面问题:
1.Map接口下有几个子类,各自有什么特点?
    HashMap     linkedhashmap    Hashtable(3类)

    HashMap:
            HashMap集合底层是哈希表,查询速度特别的快

哈希表:数组+单向链表/红黑树,
            

hashmap集合是一个无序的集合,存储元素和取出元素的顺序有可能不同

   
    linkedhashmap:
           linkedhashmap集合底层是哈希表+链表


           linkedhashmap集合是一个有序的集合,存储元素与取出元素一致(有序的)



    Hashtable:
          Hashtable底层也是一个哈希表,是一个线程安全的集合,单线程集合。速度慢

2.目前为止,我们所学的遍历map集合有几种方式?
            2种
            1种:把map集合中的方法keyset()把map集合中所有的key拿出来放入set集合
                   中

遍历set集合,获取map集合的每一个key

通过key值找到对应的value值

           另一种: 使用entry对象的getkey()和getvalue()方法
3.请用自己的语言描述你所了解的集合体系
          Collection集合是:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口List与Set。
           list集合特点:
                  1有序的集合(存储的元素和取出的元素循序是一致 的)
         

         2索引的,包含了一些索引的方法

        
                  3可以重复元素

                  4.底层是数组+链表
            子类有:LinkedList  ArrayList  Vector
        LinkedList :
             1.底层是一个链表结构:查询慢,增删快
             2.里边包含了大量操作首尾元素的方法
       ArrayList:
              1底层是数组;
              2查询快,增删慢
       Vector:
             JAVA1.0的方法,数据存储效率较低,但是安全性高
           Set集合特点:
                  1.  不包含重复元素基于哈希表实现的
                  
2.没有带索引的方法

                  底层:底层是数组+链表/红黑树的结构
            子类有: Map  HashMap  linkedhashmap
             Map:map集合是一个双列集合,一个元素包含两个值(key,value)
-      
                           map集合中的元素,key和value的数据类型可以相同,也可以不同。

                           key是不允许重复的,value是可以重复的
- key与value是一一对应的

            HashMap


                      1HashMap集合底层是哈希表,查询速度特别的快

哈希表:数组+单向链表/红黑树,

               
      2hashmap集合是一个无序的集合,存储元素和取出元素的顺序有可能不同

           linkedhashmap


                     1linkedhashmap集合底层是哈希表+链表


                     2linkedhashmap集合是一个有序的集合,存储元素与取出元素一致(有序的)
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap:底层是一个哈希表,存取无序,不能存储重复元素
LinkedHashMap:底层是一个哈希表+链表,存取有序,不能存储重复元素
HashTable:底层是一个哈希表,存取无序,不能存储空键和空值,且是不同步的,效率较低,在JDK1.2之后被HashMap取代

2.目前为止,我们所学的遍历map集合有几种方式?
有两种方式,
a.使用keySet()方法获取键的集合,通过遍历键的集合同时通过get()获取对应值来遍历map
b.使用entrySet()方法获取包含所有键值对的集合,再遍历键值集合,使用entry对象的getKey()和getValue()方法来遍历map

3.
Collection集合
List接口
ArrayList底层是一个数组, 增删时是新创建一个数组, 速度较慢

LinkedList底层是一个链表结构, 查询慢, 增删快

Vector早期版本jdk使用, 但是单线程的, 特点是速度较慢, 但安全

Set接口

不能用fori遍历, 存储的内容是不重复的
HashSet底层是一个哈希表, 查询速度快, 数据存取的顺序不一致(只是存取的顺序不一致,但打印时会按对象哈希值(一般是升序)排序)
LinkedHashSet 是HashSet的子类, 底层是哈希表+链表, 存取顺序一致

Map集合

HashMap: 底层是一个哈希表, 查询速度很快, 无序集合, 存取顺序不一致

LinkedHashMap: 底层是哈希表+链表, 存储元素和取出元素的顺序一致

Hashtable: 底层是一个哈希表, 但不能存储空值和空键, 在JDK1.2版本后被HashMap取代,是一个不同步(线程安全)的集合, 其子类Properties集合仍在使用, 是唯一一个和IO流相结合的集合

引用类型作为键时, 要求重写HashCode和equals方法
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
答:
Map接口下常用子类为: HashMap跟LinkedHashMap
HashMap的特点:
(1).HashMap集合底层是哈希表:查询的速度特别快
JDK1.8之前:数组+单向链表
JDK1.8之后:数组+单向链表/红黑树(链表长度超过8):提高查询速度
(2).HashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致
LinkedHashMap的特点:
(1).LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
(2).LinkedHashMap集合是一个有序的集合,保证元素存取的顺序一致
2.目前为止,我们所学的遍历map集合有几种方式?
答;两种方法
第一种:通过键找值的方式
Map集合中的方法:
Set<K>keySet()返回次映射中包含的键的Set视图。
实现步骤:
1.使用Map集合中的方法keySet(),把Map集合的所有key取出来,存储到一个Set集合中
2.遍历set集合,获取Map集合中的每一个key。
3.通过Map集合总的方法get(key),通过key找到valu
第二种:通过键值对方式
Map集合中的方法:
Set<Map.Entry<k,v>> entrySet()返回此映射中包含的映射关系Set视图。
实现步骤:
1.使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
2.遍历Set集合,获取每一个Entry对象
3.使用Entry对象中的方法getKey()和getValue方法获取键与值
3.请用自己的语言描述你所了解的集合体系
答:目前为止,集合分两大类,一类为单列集合,其顶层接口是collection接口,在集合内存储的元素都是单个存取的,另一类是双列集合,其顶层接口为Map接口,在集合中存储的元素都是一对一对存取的。
一.单列集合方面,又分为List和Set两类
(1).List集合的特点是带有索引值及相关方法,元素可以重复。
List集合下面有两个常用子类ArrayList及LinkedList;
ArrayList底层采用数组存储元素,所以特点是查询快,增删慢;
LinkedList底层采用链表结构,所以特点是查询慢,增删快;
(2).Set集合的特点是不带有索引值,所以元素存储无序,但是不允许元素重复出现
Set下有两个常用子类HashSet跟LInkedSet
HashSet类的特点是元素存取无序,并且不能重复,具有良好的存取和查找性能;
回复 使用道具 举报
王佳盛

1.        Map接口下有几个子类,各自有什么特点?

HashMap:
1)        底层是哈希表(JDK1.8之前是数组+链表;JDK1.8之后是数组+链表/红黑树),查询速度非常快;
2)        HashMap是无序的集合;
LinkedHashMap:
1)        继承了HashMap,底层是哈希表+链表(保证迭代的顺序);
2)        是有序的集合;
Hashtable:
1)        底层是哈希表;
2)        不允许存储null;
3)        是线程安全的;

2.        目前为止,我们所学的遍历map集合有几种方式?

键找值方法遍历:
1)        调用keySet()方法获取Map集合中所有的键,并存储到一个set集合中;
2)        通过迭代器或者增强for遍历set集合,调用get()方法传入键获取值;
键值对对象遍历:
1)        调用entrySet()方法获取Map集合中所有的键值对对象,并存储到一个set集合中;
2)        通过通过迭代器或者增强for遍历set集合;
3)        调用Map.Entry<K,V>的getKey()和getValue()方法,分别获取键与值

3.  请用自己的语言描述你所了解的集合体系

集合分为单列集合和双列集合;
单列集合:
Collection接口:所有单列集合的超级接口,定义了所有单列集合的共性方法;
List接口:继承了Collection接口
特点:有序的集合;有索引值和一些带索引值的方法;允许添加重复元素;
实现类:
        ArrayList:底层是数组;查询快,增删慢。
        LinkedList:底层是链表;查询慢,增删快。
        Vector:底层是数组;是单线程的;效率较低,Jdk1.2后被ArrayList取代
Set接口:继承了Collection接口
特点:不允许添加重复元素;没有索引值和带索引的方法;
实现类:
       HashSet:无序的集合,底层是哈希表;没有索引值和带索引的方法;不能用普通for遍历集合;
       LinkedHashSet:继承了HashSet,是有序的集合;底层是哈希表+链表;
双列集合:
Map接口:所有双列集合的超级接口
特点:
1)        每个元素都包含两个值(key,value);
2)        Key和value的数据类型可以相同可以不同;
3)        Key是不允许重复的,value可以重复;
4)        Key 和value是一一对应的
实现类:
        HashMap:无序的集合,底层是哈希表结构;
        LinkedHashMap:有序的集合,底层是哈希表+链表结构;

回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
答:
Map接口下常用子类为: HashMap跟LinkedHashMap
HashMap的特点:
(1).HashMap集合底层是哈希表:查询的速度特别快
JDK1.8之前:数组+单向链表
JDK1.8之后:数组+单向链表/红黑树(链表长度超过8):提高查询速度
(2).HashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致
LinkedHashMap的特点:
(1).LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
(2).LinkedHashMap集合是一个有序的集合,保证元素存取的顺序一致
2.目前为止,我们所学的遍历map集合有几种方式?
答;两种方法
第一种:通过键找值的方式
Map集合中的方法:
Set<K>keySet()返回次映射中包含的键的Set视图。
实现步骤:
1.使用Map集合中的方法keySet(),把Map集合的所有key取出来,存储到一个Set集合中
2.遍历set集合,获取Map集合中的每一个key。
3.通过Map集合总的方法get(key),通过key找到valu
第二种:通过键值对方式
Map集合中的方法:
Set<Map.Entry<k,v>> entrySet()返回此映射中包含的映射关系Set视图。
实现步骤:
1.使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
2.遍历Set集合,获取每一个Entry对象
3.使用Entry对象中的方法getKey()和getValue方法获取键与值
3.请用自己的语言描述你所了解的集合体系
答:目前为止,集合分两大类,一类为单列集合,其顶层接口是collection接口,在集合内存储的元素都是单个存取的,另一类是双列集合,其顶层接口为Map接口,在集合中存储的元素都是一对一对存取的。
一.单列集合方面,又分为List和Set两类
(1).List集合的特点是带有索引值及相关方法,元素可以重复。
List集合下面有两个常用子类ArrayList及LinkedList;
ArrayList底层采用数组存储元素,所以特点是查询快,增删慢;
LinkedList底层采用链表结构,所以特点是查询慢,增删快;
(2).Set集合的特点是不带有索引值,所以元素存储无序,但是不允许元素重复出现
Set下有两个常用子类HashSet跟LInkedSet
HashSet类的特点是元素存取无序,并且不能重复,具有良好的存取和查找性能;
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?

(1)常见的子类有HashMap 、 LinkedHashMap 、Hashtable

(2)特点

1.HashMap的底层采用的是哈希表。哈希表是由数组+链表/红黑树组成。而且重写了hashCode和equals方法。从而保证了数据中元素的不可重复性。

2.HashMap存入的顺序与取出的顺序不一定相同。

3.LinkedHashMap是HashMap底下的一个子类,其原理与HashMap不同,主要差异是HashMap是无序的而.LinkedHashMap是有序的。

4.Hashtable的底层机构与HashMap形同,但是它是单线程安全,效率低下。索引在JDK1.2后被HashMap取代。

2.目前为止,我们所学的遍历map集合有几种方式?

1.有两种

第一种是通过调用HashMap子类(以下用map代替)的keyset方法来获取map中的键。在通过迭代器或者增强for循环,使用get(map.keyset)方法来获取值。

第二种调用map的entryset方法获取键值对对象的set集合,通过遍历set集合获取map的键和值

3.请用自己的语言描述你所了解的集合体系

(1)集合包含两大类,一个是单列集合(Collection),一个是双列集合(Map)

(2)单列集合存储单个元素,主要分为List和Set两大类,List存储有序,可以存储重复元素,Set集合存储不一定有序(除了LinkedHashSet)不能存储重复元素

(3)Map集合存储是键值对,其中键不能重复,值可以重复,一般存储具有相关联系的一对数据,常见的实现类有HashMap 、 LinkedHashMap 、TreeMap  、Hashtable
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap<k,v> implements Map<k,v>:
特点:
<1>无序集合
<2>底层是哈希表(数组+单项列表/红黑树(JDK1.8之后出现的)),查询速度快
LinkedHashMap<k,v> implements Map<k,v>::
特点:
<1>有序
<2>底层是哈希表+链表(保证迭代的顺序)
Hashtable:底层也是哈希表
不能为空(其他集合都能存null)
是一个线程安全的集合,单线程集合(慢)
Hashtable的一个子类Properties集合是唯一和IO流相结合的集合

2.目前为止,我们所学的遍历map集合有几种方式?

两种
(1)使用”键找值”的方式遍历Map集合
keySet()方法
<1>通过Map集合keySet方法找到Map集合中的key,存储到Set集合中
<2>遍历set集合获取每一个key
<3>调用get(key)方法,通过key找到value

(2)使用”键值对”的方式遍历Map集合
用entrySet()方法
<1>entrySet()把map.entrySet作为对象存储到Set集合中
<2>遍历set集合
<3>使用Entry对象中的getKey(),getValue()方法遍历key,value

3.请用自己的语言描述你所了解的集合体系

集合分为单列集合和双列集合
<1>单列集合:有最高的父类接口Collection接口,Collection接口下有两个子接口List接口和Set接口。
其中List接口,特点是有序,有索引,List接口下有两个常用实现类,分别是ArrayList集合和LinkedList集合。还有一个不常用实现类,Vector。ArrayList集合底层是数组,它的特点是查询快,增删慢,而LinkedList集合底层是链表结构,它的特点是查询慢,增删快。
Set接口下有两个常用实现类,HashSet和LinkedHashSet。HashSet底层是哈希表结构,它的特点是不包含索引,不能存储重复元素,而且哈希表查询速度快,HashSet是一个无序集合。LinkedHashSet底层是哈希表+链表结构,它与HashSet不同的是它是有序集合。
<2>双列集合:实现Map接口,它有两个常用实现类和一个不常用实现类。HashMap底层是哈希表,查询速度快,它是无序集合,LinkedHashSet底层是哈希表+链表结构,是有序集合,Hashtable底层也是哈希表,与其他集合不同,Hashtable不能为空
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap:允许null,非同步,存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需
要重写键的hashCode()方法、equals()方法
LinkedHashMap:允许null,非同步,存储数据采用的哈希表结构+链表结构。通过链
表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的
hashCode()方法、equals()方法
Hashtable:不允许null,同步
2.目前为止,我们所学的遍历map集合有几种方式?
两种
a.通过遍历键找值方式
b.通过Entry键值对对象
3.请用自己的语言描述你所了解的集合体系
单列集合:Collection接口下分为List和Set两大分支,
其中List下有Vector、ArrayList、LinkedList实现类
Set下有HashSet、LinkedHashSet实现类
双列集合:Map接口下有HashMap、LinkedHashMap、Hashtable实现类
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
答:
Map接口的子类:
HashMap:HashMap集合的底层是哈希表,所以查询的速度非常快。HashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一样。HashMap集合是一个线程不安全的集合,是多线程的集合,可以存储null值和null键。
LinkedHashMap:LinkedHashMap集合的底层是哈希表+链表的双向列表,所以查询快,同时一条链表记录元素的顺序,所以LinkedHashMap集合是有序的,存储元素和取出元素是一样的。
Hashtable:底层是一个哈希表,是一个线程安全的集合,是单线程集合,速度慢,不能存储null值和null键。

2.目前为止,我们所学的遍历map集合有几种方式?
答:两种方式。
SetKey()方法:
        1.使用Map集合中的SetKey()方法,把Map集合所有的key取出来,存储到Set集合中
        2.对set集合遍历,获取每一个key值
        3.通过Map集合的get()方法取出所有的value值
entrySet()方法:
        1.使用Map集合中的entrySet()方法,把Map集合中多个Entry对象取出来,存储到一个Set集合中
        2.遍历Set集合,获取每一个Entry对象
        3.使用Entry对象中的getKey()和getValue()方法获取键和值

3.请用自己的语言描述你所了解的集合体系
答:集合分类:
1.单列集合Collection接口
collection集合是层次结构中的顶层接口,定义了所有单列集合中共性的方法,所有的单列集合都可以使用(但不包含带索引的方法),而它的底层下有List接口,和Set接口。
List接口:
        1.有序的集合,存储元素和取出元素是一致的
        2.允许添加重复的元素
        3.有索引值,包含一些有索引的方法
Set接口:
        1.不允许重复的元素
        2.没有索引,不包含带索引的方法
而List接口的子接口有:ArrayList接口、LinkedList接口、Vetor接口。
Set接口的子接口有:HashSet接口:无序的集合;LinkedHashSet接口:有序的集合
2.双列集合Map接口:
Map集合:
        1.是一个双列集合,一个元素包含两个值(一个key,一个value)。
        2.key和value的数据类型可以相同,也可以不同。
        3.key是不允许重复的,而value可以重复。
        4.key和value是一一对应的。
Map的子接口有HashMap接口、LinkedHashMap接口、Hashtable接口。

回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?

答:

Map接口的子类:

HashMap:HashMap集合的底层是哈希表,所以查询的速度非常快。HashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一样。HashMap集合是一个线程不安全的集合,是多线程的集合,可以存储null值和null键。

LinkedHashMap:LinkedHashMap集合的底层是哈希表+链表的双向列表,所以查询快,同时一条链表记录元素的顺序,所以LinkedHashMap集合是有序的,存储元素和取出元素是一样的。

Hashtable:底层是一个哈希表,是一个线程安全的集合,是单线程集合,速度慢,不能存储null值和null键。



2.目前为止,我们所学的遍历map集合有几种方式?

答:两种方式。

SetKey()方法:

        1.使用Map集合中的SetKey()方法,把Map集合所有的key取出来,存储到Set集合中

        2.对set集合遍历,获取每一个key值

        3.通过Map集合的get()方法取出所有的value值

entrySet()方法:

        1.使用Map集合中的entrySet()方法,把Map集合中多个Entry对象取出来,存储到一个Set集合中

        2.遍历Set集合,获取每一个Entry对象

        3.使用Entry对象中的getKey()和getValue()方法获取键和值



3.请用自己的语言描述你所了解的集合体系

答:集合分类:

1.单列集合Collection接口

collection集合是层次结构中的顶层接口,定义了所有单列集合中共性的方法,所有的单列集合都可以使用(但不包含带索引的方法),而它的底层下有List接口,和Set接口。

List接口:

        1.有序的集合,存储元素和取出元素是一致的

        2.允许添加重复的元素

        3.有索引值,包含一些有索引的方法

Set接口:

        1.不允许重复的元素

        2.没有索引,不包含带索引的方法

而List接口的子接口有:ArrayList接口、LinkedList接口、Vetor接口。

Set接口的子接口有:HashSet接口:无序的集合;LinkedHashSet接口:有序的集合

2.双列集合Map接口:

Map集合:

        1.是一个双列集合,一个元素包含两个值(一个key,一个value)。

        2.key和value的数据类型可以相同,也可以不同。

        3.key是不允许重复的,而value可以重复。

        4.key和value是一一对应的。

Map的子接口有HashMap接口、LinkedHashMap接口、Hashtable接口。
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 加入黑马