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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

26 个回复

倒序浏览
1.Map接口下有几个子类,各自有什么特点?
HashMap 线程不安全,效率高。允许null键和null值,是基于哈希表的Map接口实现。哈希表的作用是用来保证键的唯一性的

LinkedHashMap:是基于Map接口的哈希表和链接列表实现,由哈希表保证键的唯一性
                由链表保证键盘的有序(存储和取出的顺序一致)

Hashtable:线程安全,效率低。不允许null键和null值

treeMap 是基于红黑树的Map接口的实现。
2.目前为止,我们所学的遍历map集合有几种方式?
enterSet obj.getvalue .key
keySet Set<key> 遍历 打印 get(key)   
3.请用自己的语言描述你所了解的集合体系
Collection Map
List Set   HashMap
ArrayList LinkedList Verctor HashSet LinkedHashSet TreeSet 见Q1   
回复 使用道具 举报
本帖最后由 wangyuchen 于 2018-6-24 21:36 编辑

王宇晨
1.Map接口下有几个子类,各自有什么特点?
HashMap:存储结构采用的是哈希表结构,元素的存取顺序不能保证一致。
LinkedHashMap:存储结构采用的是哈希表结构和链表结构,通过链表结构可以保证元素的存取顺序。
2.目前为止,我们所学的遍历map集合有几种方式?
遍历Map集合有两种方式。
一种是键找值方式,首先获取键值,存储到Set集合,然后遍历Set集合得到每一个键,然后通过键找到对应的值。
一种是键值对方式,首先获取键值对对象(Entry),然后遍历Entry集合得到每一个对象,然后通过对象调取对应的键与值。
3.请用自己的语言描述你所了解的集合体系
集合分为单列集合和双列集合
单列集合:Collection结合,结合中元素是独立存在的。
                 Collection结合又可以分为List结合和Set集合,List集合中元素有顺序,有索引,元素可以重复;Set集合中元素没有顺序,无索引,元素不可以重复
双列集合:Map集合,结合中元素是成对存在的,每一个元素由键和值两部分组成,并且键是唯一的,值可以重复。



回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
主要的有HashMap和LinkedHashMpa
[1]HashMap:无序,键不能重复,值可以重复,键值可以为空,是双列集合.
[2]LinkedHashMap是HashMap的子类,存取元素的顺序一致.
2.目前为止,我们所学的遍历map集合有几种方式?
[1]通过KeySet方法获取键key集合,再用迭代器对键集合进行遍历用get(key)获取值value
[2]通过map中的EntrySet方法将键值包装成Entry类,然后用set集合存储起来再对此set集合用迭代器进行遍历获取值.
3.请用自己的语言描述你所了解的集合体系
目前学习到的集合分为两种:
[1]单列集合Collection:分为List,Set两种接口,List体系下的集合是有序,有索引,可以重复的,主要实现类是ArrayList,
LinkedList,Vector,其中ArrayList数据结构是数组,所以查询快,修改慢,因为修改必须创建新数组,LinkedList数据结构
是链表,所以修改快查询慢,Set体系下的集合是无序,无索引,不能重复,主要实现类是HashSet,LinkedHashSet,TreeSet.
[2]双列集合Map:存储具有映射关系键值对,主要实现类为HashMap,TreeMap,LinkedHashMap
回复 使用道具 举报

吴佳更
1.HashMap,无序,无索引,键不重复。
LinkedHashMap,会按照创建的顺序输出,是有序的。

2.两种。一种是通过map.keyset创建一个集合,然后通过集合的迭代器遍历,以及map.get()遍历出map集合。
另一种通过Entryset,获得一个集合,再通过集合的迭代器遍历,以及getKey()、getvalue(),遍历出map集合。

3.Collection是单列集合,其子类分成两大类,List和Set。
List是有序、有索引、允许重复元素,常用的三个List的子类分别是ArrayList、LinkedList、Vector,
ArrayList查找快,增删慢。LinkedList查找慢,增删快。
Vector线程安全,但效率低。
Set是无序、无索引、不允许重复元素,常用的Set的子类是HashSet,LinkedHashSet,TreeSet。
其中LinkedHashSet是有序的。有其特殊用处。
Map是双列集合,子类有HashMap,LinkedHashMap。
Map的每个元素都由键和值构成,键是唯一的。每个键只能对应一个值。
回复 使用道具 举报
杨银万1.Map接口下有几个子类,各自有什么特点?
HashMap,双例集合,存储的单位是一对键值对,键在集合中是唯一的不可重复,值可以重复,存取是无序的
LinkedHashMap,是HashMap的子类,采用链表和哈希表组合使用,存取顺序一致
2.目前为止,我们所学的遍历map集合有几种方式?



两种。
通过keySet方法获得map集合的所有键的set集合,通过遍历键集合获取对应映射的值
通过entrySet方法获得map集合的所有键值对对象Entry的集合,遍历Entry集合,通过Entry对象的getKey和getValue方法获得map的键和值





3.请用自己的语言描述你所了解的集合体系
集合体系中分为两个大类:单例集合Collection和双例集合Map,单例集合Collection中又分为List集合和Set集合,List集合的特点是有序、有索引、可重复,常用的实现类有ArrayList、LinkedList和Vector。Set集合的特点是无序、无索引、不可重复,常见的实现类有HashSet、LinkedHashSet和TreeSet。双例集合Map的特点是存储的单位为一对映射的键值对,键在集合中不可重复,值可以重复,常见的实现类有HashMap、LinkedHashMap和TreeMap。
回复 使用道具 举报

今天我们学习了Map集合,请根据自己的理解回答下面问题:
1.Map接口下有几个子类,各自有什么特点?
HashMap
底层是哈希表,元素的顺序不能得到保证,由hashCode和equals方法保证键的唯一性
LinkedHashMap
底层由链表和哈希表构成,是LinkedHashMap的子类由于引入了链表,所以相对于HashMap,其不同之处在于,该集合可以保证元素的存储顺序其余与HashMap相同(键的唯一、不重复
2.目前为止,我们所学的遍历map集合有几种方式?
通过键找值来进行遍历(获取键集合然后遍历并查找)
3.请用自己的语言描述你所了解的集合体系
集合是一种用来在存储数据的容器,与数组相比,其长度可变提供了更大的灵活性,但是只能用来存储引用类型。集合可以用来保存数据并实现一些特定的操作(如排序等)
集合分为单列集合和多列集合,在Java中对应的是Collection接口和Map接口及其子接口和实现类。
Collection中的单列集合又分为List和Set两种,前者保证元素的有序,但是允许重复的元素,后者则是无需,但是保证元素的不重复。
Set集合作为单列集合的另一种形式,其又有所不同,该类集合不能保证元素的存取顺序,但是可以确保元素的唯一不重复。
而Map集合的话,以键值对形式存储成对元素(其中键要求唯一、不重复)的映射关系。和Set一样不能保证元素的存取顺序,但是能保证所有的键值对中键的唯一和不重复。
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap  无序 键唯一  键 值 都可为null    数据结构  哈希表
        LInkedHashMap 有序
TreeMap  数据结构  二叉树
2.目前为止,我们所学的遍历map集合有几种方式?
entrySet  keySet
3.请用自己的语言描述你所了解的集合体系
Collection
---List(ArrayList LinkedList Vector)
---Set(HashSet TreeSet)
Map
---HashMap
---TreeMap
回复 使用道具 举报
梁端刚
1.Map接口下有几个子类,各自有什么特点?
答:Map接口下有多个子类,常用的有HashMap和LinkedMap。
HashMap:存储数据采用的哈希表结构,数组+链表或红黑树结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需 要重写键的hashCode()方法、equals()方法。
LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链 表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的 hashCode()方法、equals()方法。
2.目前为止,我们所学的遍历map集合有几种方式?
两种方式:i根据键找值:遍历keySet方法,使用get方法
                 ii根据键值对对象:entrySet()方法
3.请用自己的语言描述你所了解的集合体系
集合分为单列集合与双列集合。
单列集合的顶层接口为Collection接口,
分别有两个常用子接口List接口(有序,有下标,可重复)与Set接口(无序,去重),
List接口下三个常用实现类ArrayList(数组接口,线程不安全),Linkedlist(链表结构,线程不安全),Vector(线程安全,但效率低),
Set接口下有两个常用实现类HashSet(哈希表实现唯一性)及其子类LinkedHashSet(哈希表实现唯一性,链表实现存储排序)与TreeSet(树形结构实现唯一性)
双列集合的顶层接口为Map接口(无序),有多个实现类,其中常用的有HashMap及其子类LinkedHashMap。
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?map接口底下较常用的实现类有HashMap以及LinkedHashMap
HashMap存入跟取出是无序的.
LinkedHashMap的数据结构是链表结构,存取元素有顺序.

2.目前为止,我们所学的遍历map集合有几种方式?
keySet方法,通过此方法得到一个set集合返回值(因为key是唯一的),之后再用get方法通过得到的key集合去遍历.
entrySet方法,通过此方法将map集合里的键值对存储成键值对对象,得到一个set集合(参数为Map.Entry的内部类对象),之后再通过增强for循环去调用对象的get方法来遍历键值.

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

集合体系有单列Collection集合和双列Map集合,单列中间又包含list跟set两个类,list的特点是有序,有索引,允许重复,可以调用shuffle和sort方法,set的话无序,无索引,不允许重复.
双列集合map集合存储的数据为键值对,一次成对的去存取,键是唯一的,值可以重复,中间entry方法很重要,将集合里的元素封装成对象,可以灵活调用.


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

Map常用的实现类有HashMap,其特点是:以键值对来存储数据,并且key不可以重复,而value可以重复。HashMap 和LinkedHashMap的区别是,LinkedHashMap存储元素是按照添加的顺序。而HashMap的存储是无序的。

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

(1)通过keySet返回的键值集合通过get(key)方法来达到遍历的效果。
(2)通过entrySet返回的Map.Entry集合在通过遍历该集合获得得到Entry对象调用对象的getKey()和getValue()方法达到遍历的效果。

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

集合体系有两大分支,单列Collection集合、双列Map集合。其中Collection中常用的接口有List和Set接口。List的实现类的特点是:有序、有索引、允许重复。而Set的实现类的特点是:无序、无索引、不允许重复。Map集合常用的实现类是HashMap,它的特点是key不允许重复,而值可以允许重复,其将元素存入集合中的顺序是无序的如果要实现集合中的顺序和添加的顺序保持相同,应该创建其子类LinkedHashMap。
回复 使用道具 举报
林梅源
1.Map接口下有几个子类,各自有什么特点?
HashMap 无序的,采用的是Hash表结构,输入和输出的顺序不能保持一致。
LinkedHashMap  无序的,采用的是Hash表结构和链表结构,输入和输出的顺序保持一致
2.目前为止,我们所学的遍历map集合有几种方式?
1、通过键来找值 keySet()方法
2、通过值来找键 entrySet()方法
3.请用自己的语言描述你所了解的集合体系
单列:collection<E> 单独存在,有序的,有索引
双列:Map<E,M>成对存在,键是唯一的,值可以不是唯一的,无序的,无索引
回复 使用道具 举报
黄希

1.Map接口下有几个子类,各自有什么特点?
        Map接口下主要有HashMap和LinkedHashMap两个实现类,都是以键值对的形式进行存储。要保证键唯一,必须重写hashCode()方法与equals()方法。
        HashMap:哈希表结构,元素的存取顺序不一致。       
        LinkedHashMap:链表+哈希表结构,元素的存取顺序一致。

2.目前为止,我们所学的遍历map集合有几种方式?
        Map集合有两种遍历方式:
        1、Map集合先调用keySet()方法获取集合中所有元素的键,返回Set集合,再使用迭代器或增强for循环遍历该集合,调用Map集合的get()方法,根据指定的键获取对应的值。
        2、Map集合先调用entrySet()方法,返回Set<Map.Entry<K,V>>集合,再使用迭代器或增强for循环遍历该集合,通过集合元素的getKey()方法获取键,getValue()方法获取值。

3.请用自己的语言描述你所了解的集合体系
        集合分为Collection单列集合和Map双列集合。
       
        Collection接口下有List接口和Set接口
        List接口主要的实现类有ArrayList、LinkedList和Vector。
        List集合的特点是有序、有索引、允许有重复元素。
        Set接口主要的实现类有TreeSet、HashSet和HashSet的子类LinkedHashSet。
        Set集合的特点是无序、无索引、不允许有重复元素。
       
        Map接口主要的实现类有HashMap和HashMap的子类LinkedHashMap。
        Map集合的特点是元素都是以键值对的形式进行存储,键唯一,值可以重复。

回复 使用道具 举报

今天我们学习了Map集合,请根据自己的理解回答下面问题:
1.Map接口下有几个子类,各自有什么特点?
Map接口下有两个子类
Hashmap类,使用Hash表存储结构,元素的存取顺序不能保证一致;
Linkedhashmap类,使用链表和Hash表结构,元素的存取顺序保持一致。
2.目前为止,我们所学的遍历map集合有几种方式?
有两种方式,
键找值方式:即通过元素中的键,获取键所对应的值
键值对方式:即通过集合中每个键值对(Entry)对象,获取键值对(Entry)对象中的键与值。
3.请用自己的语言描述你所了解的集合体系
集合分为单列结合Collection接口下的和双列集合Map接口下的
Collection接口下又有List和Set接口,List接口下的集合中元素有序,有索引,元素可以重复;Set接口下的集合中元素无序,无索引,元素不可以重复
Map接口下集合都有两个泛型变量,在使用时,要为两个泛型变量赋予数据类型。两个泛型变量的数
据类型可以相同,也可以不同;两个泛型变量分为键和值两部分,其中键不能重复,值可以重复。
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?

Map:子类中HashMap存储和添加的顺序不一样;
LinkedHashMap存储和添加的顺序一致


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

一种通过获取键集合的Set集合,然后再变相遍历Set集合方式遍历;
另一种是获取到键对值的Entry Set集合遍历

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

Collcetion:单列集合包含List和Set集合 ,List和Set又有各自的实现类,分别采用
不同的数据存储方式,各有优点;
Map:双列集合通过键值对存储,键值唯一,值可以不同
回复 使用道具 举报
贾宗虎

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

  有HashMap和LinkedHashMap两个子类.

  两个子类共有的特点是:Map是双列集合,每个元素为键和值.键和值的关系叫 映射,其中键不可重复,值可以重复.键和值都可以是自定义类型.当键的数据是自定义类型的时候,一定要重写类型的hashCode()和equals()方法.保证元素的唯一性.值是自定义类型的时候可以不用重写.
  不同特点是:
  HashMap子类存储的数据,做不到存取顺序一致
  LinkedHashMap存储的数据,可以做到存取顺序一致

2.目前为止,我们所学的遍历map集合有几种方式?
  
  keySet()和entrySet()两种方式都是讲map集合的数据,存储到Set集合中来实现遍历.
  keySet()方法是创建一个Set集合,存储map中的键,遍历键的Set集合,用得到的键,map.get(键)获取每一个值,
    从而实现遍历map集合
  entrySet()方法是创建一个Set集合对象,将每一个键值对封装起来,储存致Set集合中.遍历Set集合获得键值对对象,
    调用getKey()和getValue()方法,实现遍历map集合
  遍历两种Set集合可以使用以下两种方式
  ①创建集合的Iterator迭代器对象.使用hasNext() 和 next()方法来实现遍历.
  ②增强for循环

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

  首先,数据结构分为:堆栈,队列,数组,链表,红黑树.
  集合是一个容器,通过使用不同的数据结构来存储数据.
  其次,单列集合的顶级接口是Collection,双列集合顶级接口是Map
    Collection下有List和Set两个子接口,
      List集合的特点是有序,有索引值,可重复的.
        List集合下有三个子实现类:ArrayList,LinkedList,Vector
        ArrayList集合底层是数组实现的,特点是:查找快,增删慢.
        LinkedList集合是链表结构.特点是查找慢,增删快.
        Vector集合老师说快被淘汰了,暂时不用管.
      Set集合相反,是无序,无索引,不可重复的.
        Set接口下有两个实现类:HashSet和LinkedHashSet
        HashSet类的特点是存取顺序不保证一致.
        LinkedHashSet类的特点是保证存取顺序的一致.
  Map是双列集合的顶级接口,有两个子类:HashMap和LinkedHashMap
     Map的特点是每个元素由键和值构成.键和值是映射关系.两者都可以存放自定义类型,
    其中当键是自定义类型的时候,需要重写比较方法,已保证不重复.值可以重复,所以不需要重写.
    遍历用keySet()或entrySet()方法.使用方式参考上一题..
    HashMap类的特点是不保证存取顺序一致
    LinkedHashMap类的特点是保证存取顺序的一致.




回复 使用道具 举报
1.有两个,HashMap跟linkedHashMap;
  HashMap是哈希表结构,元素是键值对,键的值是唯一的,需要重写HashCode方法跟equals方法,元素存取不一致
  linkedHashMap是哈希表加链表结构,键的值是唯一的,需要重写HashCode方法跟equals方法,元素存取顺序一致
2.两种。entrySet跟keySet。
3.集合分为单列集合跟双列集合,单列集合的父接口是Collection,子接口有List跟Set
  List集合是有序有索引可以重复,Set集合无序无索引不可以重复;
  List包含的有Arraylist、LinkedList、Vector;Arraylist是数组结构,查找快,增删慢;LinkedList是链表结构,查找慢,增删快;
  Set包含HashSet、LinkHashSet;
  双列集合是Map,存取的是键值对,键是唯一的,值可以重复,子类有HashMap跟linkedHashMap
回复 使用道具 举报
洪文生
1.Map接口下有几个子类,各自有什么特点?
Map接口下常用的有HashMap类和LinkedHashMap类两个子类
HashSet采用的是哈希表结构存储数据,元素的的存取顺序不能保证一致。由于要保证键的唯一,需要重写hashCode和equals方法。
LinkedHashMap类是继承于HashMap类,多了一个链表结构保证了存取顺序的一致。

2.目前为止,我们所学的遍历map集合有几种方式?
三种。第一种,键找值方式,通过调用keySet方法获得Map集合k值的Set集合,再遍历Set集合(增强for或者迭代器);第二种,键值对(entry)方式,通过entrySet方法获得Map集合的entry对象的集合,在进行遍历

3.请用自己的语言描述你所了解的集合体系
集合分为单列集合{Collection}和双列集合(Map),单列集合有两个子接口Set和List,Set接口是无序,无索引,不可重复的,List接口是有索引,有序,可重复的,在List和Set接口的下面还有几个实现类,他们的特殊点在于他们采用的数据结构不一样。Map集合与Collection集合不同的地方是Map集合每次可以存储一对数据(k值和v值);除此之外,还有Collections工具类的应用
回复 使用道具 举报

王博


1.Map接口下有几个子类,各自有什么特点?
HashMap:采用哈希表结构,元素存取无序,元素不重复(需要重写hashCode()和equals()方法)
LinkedHashMap采用哈希表+链表结构,元素存取有序,元素不重复(需要重写hashCode()和equals()方法)


2.目前为止,我们所学的遍历map集合有几种方式?
键找值:通过keySet()方法,将键集合中所有的键key添加到set集合中,遍历set集合,通过get()方法获取每个键所对应的值
键值对:通过entrySet()方法,将键key和对应的值value封装成为一个Entry对象,然后通过对象调用getKey(),getValue()方法

Collection

3.请用自己的语言描述你所了解的集合体系
集合分为单列集合Collection和双列集合Map

Collectiony分为List和Set
List是有序的,可重复的,有索引,其中又分为ArrayList,LinkedList
Set是无序的,不可重复,无索引,其中又分为HashSet,LinkedHashSet

Map分为HashMap,LinkedHashMap


回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap:底层是哈希表,元素存取无序
LinkedHashMap:底层是链表+哈希表,元素存取有序


2.目前为止,我们所学的遍历map集合有几种方式?
由于Map没有实现Iterable接口,所以无法直接用增强for循环直接遍历;

a.通过他的KeySet方法获取K(键)集合,再通过增强for或者Iterator迭代器遍历集合,配合Map集合的get(K)方法返回的V值以达到遍历效果

b.调用entrySet方法将键值对封装成enrty对象,返回一个装有enrty对象的Set集合。再通过增强for或者迭代器配合enrty对象的getKey和getValue方法获取entry中的K和V的值;


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

集合就像一种容器,用来装东西用的,不同的集合含带的功能和能装的东西也不一样。
像Collection,Map这两个容器,算是它们底下所有子接口,子实现类的容器雏形,刚开发出来作为容器使用,功能并不完善,随着存入元素的多样化,需求的日益增多,于是在原来两个根容器基础上又开发了含有其他功能的容器,这些容器除了拥有他们祖宗的特性外,还拥有属于自己的特点。如List,Set,除了拥有Collection的功能(方法)外,自身的特丶也很明确-----有序有索引和无序无索引;
而在这两之后的Arraylist--linkedList...HashSet---LinkedHashSet...等等这些底层存储方式不同,功能更加强大的容器,更是大大提高了元素存取的效率以及存取方式的多样性。

Collections-----Collection的工具类
容器的外部工具,用来提高元素的存取效率,并且可以根据需求对容器内的元素进行一些操作
举个栗子,譬如取款机(ArrayList),存一千进去,一百一百的存,铁定没有直接存一千进去来得快。这个存一千进去的方法就相当于addAll,极大减少了容器储存元素的步骤。(栗子举得可能不是很恰当。。)

最后说说泛型,泛型则类似于在容器上添加标签。表示该容器只能存入此类元素,从而使得元素的分类存储井然有序。


感觉今晚的总结贼能扯。。。


回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马