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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

68 个回复

正序浏览

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接口下有几个子类,各自有什么特点?
答: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接口下有几个子类,各自有什么特点?
(1)HashMap:
        1.底层是哈希表,查询速度特别快;
        2.

是一个无序的集合,存取顺序可能不一致。
        3.不允许键重复,如果重复,则替换对应的值。
        4.允许存储null值和空键。
        5.线程不安全。

(2)LinkedHashMap:
        1.是HashMap的子类。
        2.底层是哈希表+链表(保证迭代的顺序),是一个有序的集合。

        3.


不允许键重复,如果重复,则替换对应的值。

        4.允许存储null值和空键。
(3)HashTable:
        1.与Vector一样,速度慢但线程安全。
        2.不常用,在jdk1.2之后被HashMap取代。
        3.不允许存储null值和空键。
(4)Properties:
        1.是HashTable的子类。
        2.Properties集合依然在被使用。
        3.是一个唯一一个和IO流相结合的集合。
2.目前为止,我们所学的遍历map集合有几种方式?
(1)keySet()方法:
        keySet这种方法是直接获取map集合中所有的key组成一个keySet集合,然后通过对keySet循环一个一个从map集合中以键找值打印出来所有key对应的value。
(2)entrySet()方法:
        entrySet这种方法是获取map集合中每个整体键值对的entry映射关系的entry对象,entry对象中存着所有键值对的键和值,然后一个一个调用entry对象们的getValue和getKey方法打印输出。
3.请用自己的语言描述你所了解的集合体系
        集合体系共分为两大类:单列集合(Collection)、双列集合(Map)。
        单列集合中分为两类:一类为List,增删慢查找快,有索引值,有带索引值的方法,有顺序,可以通过普通for、增强for、iterator遍历,遍历时增删元素友好;一类为Set,增删快查找慢,无索引,不能通过普通for遍历,除LinkedList外无顺序。常用的有ArrayList、HashSet。
        双列集合中,Map接口的存储格式为键值对,键值一一对应,键不可重复,无序且不带索引。常用的有LinkedHashMap。
回复 使用道具 举报
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接口下有几个子类,各自有什么特点?
Map接口下有HashMap和LinkedHashMap的
HashMap:存储数据采用的是哈希表结构,哈希表由数组和链表/红黑树组成。元素的存取顺序不能保证一致。由于要保证键的唯一,不重复,需要重写键的hashCode()方法、equals()方法。
LinkedHashMap是HashMap的子类,存储结构为哈希表结构+链表结构。通过链表可以保证元素存取顺序一致;通过哈希表结构可以保证键的唯一,不重复,需要重写键的hashCode()方法,equals()方法。
2.目前为止,我们所学的遍历map集合有几种方式?
map.entrySet()获得键值对集合,再通过迭代器或增强for来遍历map集合。
map.keySet()获得键值集合,再通过迭代器或增强for来遍历map集合。
3.请用自己的语言描述你所了解的集合体系
集合有两大体系:Collection和Map集合。
Collection 中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。Map 中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。
Collection集合包含List接口集合和Set接口集合。List集合是有序的,元素可重复,有具体索引值。List集合包含Vector、ArrayList和LinkedList.ArrayList集合底层是数组结构,查询快,增删慢;LinkedList集合,底层是链表结构,查询慢,增删快。Set集合元素是不可重复的,底层是哈希表结构。其中HashSet集合元素是无序的,而LinkedHashSet里元素是有序的,因为它底层数据结构多了一条链表记录顺序。
Map集合包含HashSet和LinkedHashSet.
HashSet底层是哈希表结构,数组+单向链表/红黑树结构,查询的速度特别快。
LinkedHashMap集合底层是哈希表+链表,LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的.
回复 使用道具 举报
今天我们学习了Map集合,请根据自己的理解回答下面问题:
1.Map接口下有几个子类,各自有什么特点?
HashMap无序的
LinkedHashMap有序的
HashTable键和值不能为null

2.目前为止,我们所学的遍历map集合有几种方式?
两种keyset  键找值 调用keyset方法返回见得set集合
entryset  调用entryset方法返回见得键值对对象
3.请用自己的语言描述你所了解的集合体系
单列collection集合包含list和set两个接口,
1  list中包含linkedlist,arraylist和vector三个实现类,;list集合是有序的,含有索引值,元素可重复
2  set包含hashset和linkedhashset(有序的)两个实现类,set集合不含索引值,里面的元素的不可重复的因为调用了equals和hashcode方法
双列集合map包含HashMap和LinkedhashMap两个实现类
1  HashMap集合的底层是哈希表结构,所以查询速度特别快,但是因为是多线程,不安全。他是一个储存无序的集合。
2  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接口下有几个子类,各自有什么特点?
答:Map接口下常用的子类有3个:
①HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
②LinkedHashMap:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
③HashTable:底层也是一个哈希表,是一个线程安全的集合,单线程集合,速度慢。不能存储空值,空键。Hashtable在jdk1.2版本之后被更先进的集合取代了。

2.目前为止,我们所学的遍历map集合有几种方式?
答:截止目前所学的遍历map集合有两种方式:
【keySet遍历方式】通过调用Map.keyset方法获取Map中的所有键,存储在一个Set中,然后遍历这个Set,通过Map.get方法获取每个键对应的值。
【entrySet遍历方式】通过调用Map.entrySet()方法获取Map中的所有键值对Entry,存储在一个Set中,然后遍历这个Set,通过Entry.getKey()和Entry.getValue()方法分别获取Entry对象中的键和值。

3.请用自己的语言描述你所了解的集合体系
答:集合体系是我们需要存储多个数据,且个数不确定时(无法用数组),使用的容器。
集合体系有两个主要分支:单列集合【Collection】和双列集合【Map】。
【Collection】接口下有两个主要接口【List】和【Set】
【List】接口:
通常表示一个列表(数组、队列、链表、栈等),有序的,
元素是可以重复的,通过索引就可以精确的操作集合中的元素,List接口的特有方法,都是围绕索引定义的。
List获取元素的方式有两种:一种是迭代,还有一种是遍历+get
List接口是支持对元素进行增删改查动作的(add,set,get,remove)
常用的实现类为【ArrayList】和【LinkedList】,还有不常用的【Vector】(已过时)。
1、ArrayList:是数组结构,长度是可变的,原理是(创建新数组+复制数组),查询速度快,增删较慢,不同步。ArrayList不是线程安全的,只能用在单线程环境下
2、LinkedList:是基于双向循环链表实现的,是链表结构,不同步的,增删速度快,查询较慢。
3、Vector:可以增长的数组结构,同步的,效率很低,查询增删凑慢,已过时。

【Set】接口:
不允许包含重复的元素(通过hashcode和equals函数保证),一般不保证顺序,而且方法和Collection一致,set集合取出元素的方式只有一种:迭代器。
常用的实现类为【HashSet】和【LinkedHashSet 】。HashSet是无序的,LinkedHashSet是有序的。一般需要重写hashcode和equals方法。

【Map】
是一个双列集合,一个元素包含两个值(一个key,一个value)。key是不允许重复的,value是可以重复的。
常用的方法有增put、删remove和查get,同时put还有修改的功能。常用的遍历方式有两种:keySet和entrySet遍历方式
常用的实现类有三个:
【HashMap】:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需
要重写键的hashCode()方法、equals()方法。
【LinkedHashMap】:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
【HashTable】:底层也是一个哈希表,是一个线程安全的集合,单线程集合,速度慢。不能存储空值,空键。Hashtable和Vector集合一样,在jdk1.2版本之后被更先进的集合取代了。
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
答:Map接口下常用的子类有3个:
①HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
②LinkedHashMap:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
③HashTable:底层也是一个哈希表,是一个线程安全的集合,单线程集合,速度慢。不能存储空值,空键。Hashtable在jdk1.2版本之后被更先进的集合取代了。

2.目前为止,我们所学的遍历map集合有几种方式?
答:截止目前所学的遍历map集合有两种方式:
【keySet遍历方式】通过调用Map.keyset方法获取Map中的所有键,存储在一个Set中,然后遍历这个Set,通过Map.get方法获取每个键对应的值。
【entrySet遍历方式】通过调用Map.entrySet()方法获取Map中的所有键值对Entry,存储在一个Set中,然后遍历这个Set,通过Entry.getKey()和Entry.getValue()方法分别获取Entry对象中的键和值。

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

答:集合体系是我们需要存储多个数据,且个数不确定时(无法用数组),使用的容器。
集合体系有两个主要分支:单列集合【Collection】和双列集合【Map】。
【Collection】接口下有两个主要接口【List】和【Set】
【List】接口:
通常表示一个列表(数组、队列、链表、栈等),有序的,
元素是可以重复的,通过索引就可以精确的操作集合中的元素,List接口的特有方法,都是围绕索引定义的。
List获取元素的方式有两种:一种是迭代,还有一种是遍历+get
List接口是支持对元素进行增删改查动作的(add,set,get,remove)
常用的实现类为【ArrayList】和【LinkedList】,还有不常用的【Vector】(已过时)。
1、ArrayList:是数组结构,长度是可变的,原理是(创建新数组+复制数组),查询速度快,增删较慢,不同步。ArrayList不是线程安全的,只能用在单线程环境下
2、LinkedList:是基于双向循环链表实现的,是链表结构,不同步的,增删速度快,查询较慢。
3、Vector:可以增长的数组结构,同步的,效率很低,查询增删凑慢,已过时。

【Set】接口:
不允许包含重复的元素(通过hashcode和equals函数保证),一般不保证顺序,而且方法和Collection一致,set集合取出元素的方式只有一种:迭代器。
常用的实现类为【HashSet】和【LinkedHashSet 】。HashSet是无序的,LinkedHashSet是有序的。一般需要重写hashcode和equals方法。

【Map】
是一个双列集合,一个元素包含两个值(一个key,一个value)。key是不允许重复的,value是可以重复的。
常用的方法有增put、删remove和查get,同时put还有修改的功能。常用的遍历方式有两种:keySet和entrySet遍历方式
常用的实现类有三个:
【HashMap】:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需
要重写键的hashCode()方法、equals()方法。
【LinkedHashMap】:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
【HashTable】:底层也是一个哈希表,是一个线程安全的集合,单线程集合,速度慢。不能存储空值,空键。Hashtable和Vector集合一样,在jdk1.2版本之后被更先进的集合取代了。

回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
答:一共有3中子类,分别为HashMap类,LinkedHashMap类,HashTable类
1.HashMap的特点为:因为底层是哈希表,查询数据特别快,是一个无序的集合,每次存储元素都是一个Key值+Value值,其中key和Value值都是引用数据类型,存储的key值不可重复,每一个key最多拥有一个value值对应,可以储存null值。
2.LinkedHashMap的特点:底层为哈希表+链表结构,用链表来记录储存的迭代顺序,是一个有序的集合,每次存储元素都是一个Key值+Value值,其中key和Value值都是引用数据类型,存储的key值不可重复,每一个key最多拥有一个value值对应可以储存null值
3.HashTable的特点是:底层是哈希表,因为是单线程,线程安全,但是运行效率低,不支持null值的存储(不管再key或者value都不能存储null)。


2.目前为止,我们所学的遍历map集合有几种方式?
答:遍历map集合的方式有两种。
第一种是通过键找值的方式,对于一个map集合,可以通过KeySet()方法转换为一个储存key值的set集合,再通过增强for循环/迭代器方式遍历set集合,遍历过程中对于每一个取出的key值在使用map.get()方法取出value值。
第二种是通过键值对关系,对于一个map集合,先使用EntrySet()方法获得一个储存map集合的key/value映射的set集合,然后通过增强for循环/迭代器遍历set集合,在遍历过程中,使用映射关系的特有方法getkry(),getvalue(),获得map集合的每一个key值和相对应的value值。

3.请用自己的语言描述你所了解的集合体系
答:
1.集合首先分为2种,一种为单列集合,其顶层接口是collection接口,其中的储存的元素都是单个单个存取的,另外一种是双列集合,其顶层接口是map接口,其中储存的元素都是一对一对的存取的。
2.单列集合种分为两种,一种为list集合,list集合的特点是:有序,储存的元素可重复,储存的元素有索引,方便快速的查询到元素。另外一种是set集合,set集合的特点是:储存的元素不可重复,元素没有索引。
3.list集合的子类集合较长看到的有3种,分别为Arraylist集合,LinkedList集合,Vector集合,他们都继承了List集合的特点。其中Arraylist集合底层是数组结构,因此他查询快,增删慢,LinkedList集合的底层结构是链表结构,所以他的特点是增删快,查询慢,而Vector集合是单线程,线程安全,但是运行效率低。
4.Set集合种有2种子类集合,他们分别是HashSet集合,LinkedHashSet集合,他们均继承了se集合的特点,HashSet集合的底层结构是哈希表,所以他存取数据是无序的,而LinkedHashset集合的底层是哈希表+链表+红黑树,所以他存取数据是有序的。
5.对于双列集合的特点主要为每个元素都是有2个值组成(key+value),其中key值唯一,每一个key值最多映射到一个value值。key和value都是引用数据类型,但两者的数据类型可以相同,也可以不相同。key和value值的关系靠key维持。
6.Map接口下有3种子类:分别为HashMap集合,LinkedHashMap集合,HashTable集合。
其中HashMap集合的底层是哈希表结构,所以查询速度特别快,但是因为是多线程,不安全。他是一个储存无序的集合。
LinkedHashMap集合的底层是哈希表+链表结构,查询速度也很快,但是是一个储存有序的集合。
HashTable集合底层也是一个哈希表,是单线程,线程安全。但是不支持null值的存储,不管key值或者value值都不能储存null值。所了解的集合体系
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
答:Map接口下常用的子类有3个:
①HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需
要重写键的hashCode()方法、equals()方法。
②LinkedHashMap:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
③HashTable:底层也是一个哈希表,是一个线程安全的集合,单线程集合,速度慢。不能存储空值,空键。Hashtable在jdk1.2版本之后被更先进的集合取代了。

2.目前为止,我们所学的遍历map集合有几种方式?
答:截止目前所学的遍历map集合有两种方式:
【keySet遍历方式】通过调用Map.keyset方法获取Map中的所有键,存储在一个Set中,然后遍历这个Set,通过Map.get方法获取每个键对应的值。
【entrySet遍历方式】通过调用Map.entrySet()方法获取Map中的所有键值对Entry,存储在一个Set中,然后遍历这个Set,通过Entry.getKey()和Entry.getValue()方法分别获取Entry对象中的键和值。

3.请用自己的语言描述你所了解的集合体系
答:集合体系是我们需要存储多个数据,且个数不确定时(无法用数组),使用的容器。
集合体系有两个主要分支:单列集合【Collection】和双列集合【Map】。
【Collection】接口下有两个主要接口【List】和【Set】
【List】接口:
通常表示一个列表(数组、队列、链表、栈等),有序的,
元素是可以重复的,通过索引就可以精确的操作集合中的元素,List接口的特有方法,都是围绕索引定义的。
List获取元素的方式有两种:一种是迭代,还有一种是遍历+get
List接口是支持对元素进行增删改查动作的(add,set,get,remove)
常用的实现类为【ArrayList】和【LinkedList】,还有不常用的【Vector】(已过时)。
1、ArrayList:是数组结构,长度是可变的,原理是(创建新数组+复制数组),查询速度快,增删较慢,不同步。ArrayList不是线程安全的,只能用在单线程环境下
2、LinkedList:是基于双向循环链表实现的,是链表结构,不同步的,增删速度快,查询较慢。
3、Vector:可以增长的数组结构,同步的,效率很低,查询增删凑慢,已过时。

【Set】接口:
不允许包含重复的元素(通过hashcode和equals函数保证),一般不保证顺序,而且方法和Collection一致,set集合取出元素的方式只有一种:迭代器。
常用的实现类为【HashSet】和【LinkedHashSet 】。HashSet是无序的,LinkedHashSet是有序的。一般需要重写hashcode和equals方法。

【Map】
是一个双列集合,一个元素包含两个值(一个key,一个value)。key是不允许重复的,value是可以重复的。
常用的方法有增put、删remove和查get,同时put还有修改的功能。常用的遍历方式有两种:keySet和entrySet遍历方式
常用的实现类有三个:
【HashMap】:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需
要重写键的hashCode()方法、equals()方法。
【LinkedHashMap】:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
【HashTable】:底层也是一个哈希表,是一个线程安全的集合,单线程集合,速度慢。不能存储空值,空键。Hashtable和Vector集合一样,在jdk1.2版本之后被更先进的集合取代了。
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?

两个:HashMap集合和LinkedHashMap集合

HashMap集合特点:

(1.)可以使用null键,null值;

(2.)是一个无序的集合,多线程,底层是哈希表,查询的速度特别快

LinkedHashMap集合:

(1.)可以使用null键,null值;

(2.)是一个有序的集合,底层是哈希表+链表结构,所以保证了集合的有序性

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

两种:

第一种: 键找值方法(keySet() --> get(k))

1.先map.ketSet();获取到对应的Key键,存储到一个set集合中

2.再使用迭代器或者增强for遍历一下集合,get(k)获取到每一个键对应的value值

3.最后再输出打印键和值

第二种:键值对映射entrySet方法(entry.getKey,entry.getValue)

1.先map.entryset()获取到每一个key键,存储到一个set集合中

2.遍历一下这个集合,拿到每一个entry对象

3.用entry对象的getKey,getValue方法获取到每一个K键和V值.



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

集合分为单列集合和双列集合:

单列集合:最顶层是Collection接口,它里面包含所有单列集合的共性的方法.

Collection 接口下面又包含了两个接口,List接口和Set接口

List接口是有序的,可以存储重复元素,包含索引的方法.它底下包含了三个集合(Vector集合,ArrayList集合,LinkedList集合)

Set接口是不可以存储重复元素的,不包含索引的方法,而且顺序是有可能不一致,因为它底下包含的两个集合中(hashSet集合是无序的,而LinkedHashSet集合是有序的,因为它底层多了一条链表,保证了元素存储的有序性)

双列集合:最顶层的是Map接口,Map的方法所有双列集合都可以使用,它底下也包含了三个集合(HashMap集合和LinkedHashSet集合,HashTable集合)

HashMap集合可以存储Null键Null值,是无序的;

LinkedHashSet集合也可以存储Null键Null值,它是有序的.

HashTable集合是比较老的双列集合,键和值不允许包含null.
回复 使用道具 举报

集合体系是我们需要存储多个数据,且个数不确定时(无法用数组),使用的容器。
集合体系有两个主要分支:单列集合【Collection】和双列集合【Map】。
【Collection】接口下有两个主要接口【List】和【Set】
【List】接口:
通常表示一个列表(数组、队列、链表、栈等),有序的,
元素是可以重复的,通过索引就可以精确的操作集合中的元素,List接口的特有方法,都是围绕索引定义的。
List获取元素的方式有两种:一种是迭代,还有一种是遍历+get
List接口是支持对元素进行增删改查动作的(add,set,get,remove)
常用的实现类为【ArrayList】和【LinkedList】,还有不常用的【Vector】(已过时)。
1、ArrayList:是数组结构,长度是可变的,原理是(创建新数组+复制数组),查询速度快,增删较慢,不同步。ArrayList不是线程安全的,只能用在单线程环境下
2、LinkedList:是基于双向循环链表实现的,是链表结构,不同步的,增删速度快,查询较慢。
3、Vector:可以增长的数组结构,同步的,效率很低,查询增删凑慢,已过时。

【Set】接口:
不允许包含重复的元素(通过hashcode和equals函数保证),一般不保证顺序,而且方法和Collection一致,set集合取出元素的方式只有一种:迭代器。
常用的实现类为【HashSet】和【LinkedHashSet 】。HashSet是无序的,LinkedHashSet是有序的。一般需要重写hashcode和equals方法。

【Map】
是一个双列集合,一个元素包含两个值(一个key,一个value)。key是不允许重复的,value是可以重复的。
常用的方法有增put、删remove和查get,同时put还有修改的功能。常用的遍历方式有两种:keySet和entrySet遍历方式
常用的实现类有三个:
【HashMap】:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需
要重写键的hashCode()方法、equals()方法。
【LinkedHashMap】:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
【HashTable】:底层也是一个哈希表,是一个线程安全的集合,单线程集合,速度慢。不能存储空值,空键。Hashtable和Vector集合一样,在jdk1.2版本之后被更先进的集合取代了。

回复 使用道具 举报

1.Map接口下有几个子类,各自有什么特点?
Hashmap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法
LinkedHashMap:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
Hashtale:存储数据采用的哈希表结构,键和值不能储存null。是单线程,运行速度慢,但是安全。

2.目前为止,我们所学的遍历map集合有几种方式?
两种。entrySet() 和keySet。

3.请用自己的语言描述你所了解的集合体系
集合体系包含单列集合和双列集合。
单列集合又分为List和Set两大类,其中LIst集合是有序,可以重复的,带索引。常见的LIst的集合有ArrayList,LinkedList.
Set集合不能有重复元素,不带索引。常见的Set集合有HashSet,Linked,HashSet.
双类集合为Map集合为键值对,键值一一对应,键不可重复,值可以,是无序的不带索引。常见的Map集合有HashMap , LinkedHashMap ,Hashtable。
回复 使用道具 举报

今天我们学习了Map集合,请根据自己的理解回答下面问题:
1.Map接口下有几个子类,各自有什么特点?
Map接口下有多个子类,Map接口中的集合都有两个泛型变量<K,V>,在使用时,要为两个泛型变量赋予数据类型。两个泛型变量<K,V>的数据类型可以相同,也可以不同。
我们主要学习HashMap集合、LinkedHashMap集合。
HashMap集合:
存储数据采用的哈希表结构:数组+单向链表/红黑树(链表长度超过8时),查询速度特别快,元素的存取顺序不能保证一致。
由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
LinkedHashMap集合:
HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。
通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

2.目前为止,我们所学的遍历map集合有几种方式?
1、键找值方式:即通过元素中的键,获取键所对应的值
分析步骤:
(1). 获取Map中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键。方法提示: keyset()
(2). 遍历键的Set集合,得到每一个键。
(3). 根据键,获取键所对应的值。方法提示: get(K key)
2、Map 中存放的是两种对象,一种称为key(键),一种称为value(值),它们在在 Map 中是一一对应关
系,这一对对象又称做 Map 中的一个 Entry(项) 。 Entry 将键值对的对应关系封装成了对象。即键值对对象,这
样我们在遍历 Map 集合时,就可以从每一个键值对( Entry )对象中获取对应的键与对应的值。
3、键值对方式:即通过集合中每个键值对(Entry)对象,获取键值对(Entry)对象中的键与值。
1. 获取Map集合中,所有的键值对(Entry)对象,以Set集合形式返回。方法提示: entrySet() 。
2. 遍历包含键值对(Entry)对象的Set集合,得到每一个键值对(Entry)对象。
3. 通过键值对(Entry)对象,获取Entry对象中的键与值。 方法提示: getkey() getValue()
3.请用自己的语言描述你所了解的集合体系
集合体系包含单列集合和双列集合。
单列集合又分为List和Set两大类,其中LIst集合是有序,可以重复的,带索引。常见的LIst的集合有ArrayList,LinkedList.
Set集合不能有重复元素,不带索引。常见的Set集合有HashSet,Linked,HashSet.
双类集合为Map集合为键值对,键值一一对应,键不可重复,值可以,是无序的不带索引。常见的Map集合有HashMap , LinkedHashMap ,Hashtable。
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
答:Map接口下常用的子类有3个:
①HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需
要重写键的hashCode()方法、equals()方法。
②LinkedHashMap:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
③HashTable:底层也是一个哈希表,是一个线程安全的集合,单线程集合,速度慢。不能存储空值,空键。Hashtable在jdk1.2版本之后被更先进的集合取代了。

2.目前为止,我们所学的遍历map集合有几种方式?
截止目前所学的遍历map集合有两种方式:
【keySet遍历方式】通过调用Map.keyset方法获取Map中的所有键,存储在一个Set中,然后遍历这个Set,通过Map.get方法获取每个键对应的值。
【entrySet遍历方式】通过调用Map.entrySet()方法获取Map中的所有键值对Entry,存储在一个Set中,然后遍历这个Set,通过Entry.getKey()和Entry.getValue()方法分别获取Entry对象中的键和值。

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

集合体系是我们需要存储多个数据,且个数不确定时(无法用数组),使用的容器。
集合体系有两个主要分支:单列集合【Collection】和双列集合【Map】。
【Collection】接口下有两个主要接口【List】和【Set】
【List】接口:
通常表示一个列表(数组、队列、链表、栈等),有序的,
元素是可以重复的,通过索引就可以精确的操作集合中的元素,List接口的特有方法,都是围绕索引定义的。
List获取元素的方式有两种:一种是迭代,还有一种是遍历+get
List接口是支持对元素进行增删改查动作的(add,set,get,remove)
常用的实现类为【ArrayList】和【LinkedList】,还有不常用的【Vector】(已过时)。
1、ArrayList:是数组结构,长度是可变的,原理是(创建新数组+复制数组),查询速度快,增删较慢,不同步。ArrayList不是线程安全的,只能用在单线程环境下
2、LinkedList:是基于双向循环链表实现的,是链表结构,不同步的,增删速度快,查询较慢。
3、Vector:可以增长的数组结构,同步的,效率很低,查询增删凑慢,已过时。
【Set】接口:

不允许包含重复的元素(通过hashcode和equals函数保证),一般不保证顺序,而且方法和Collection一致,set集合取出元素的方式只有一种:迭代器。

常用的实现类为【HashSet】和【LinkedHashSet 】。HashSet是无序的,LinkedHashSet是有序的。一般需要重写hashcode和equals方法。

【Map】

是一个双列集合,一个元素包含两个值(一个key,一个value)。key是不允许重复的,value是可以重复的。

常用的方法有增put、删remove和查get,同时put还有修改的功能。常用的遍历方式有两种:keySet和entrySet遍历方式

常用的实现类有三个:

【HashMap】:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需

要重写键的hashCode()方法、equals()方法。

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

【HashTable】:底层也是一个哈希表,是一个线程安全的集合,单线程集合,速度慢。不能存储空值,空键。Hashtable和Vector集合一样,在jdk1.2版本之后被更先进的集合取代了。


回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap:底层是哈希表,无序无重复
LinkedHashMap:底层是哈希表+链表,有序无重复
HashTable:底层是哈希表,线程安全,运行速度慢

2.目前为止,我们所学的遍历map集合有几种方式?
Map集合可通过键找值的方法遍历
Map集合可通过Entry键值对对象遍历

3.请用自己的语言描述你所了解的集合体系
集合体系分为单列集合Collection(有索引,有序,可重复)和双列集合Map(无索引,无序),Collection集合里包含着两个子接口分别是List接口(有序可重复)和Set接口(无序不可重复),List接口里包含了三个实现类ArrayList集合(查找快,增删慢,底层是数组),LinkedList集合(查找慢,增删快,底层是链表),Vector集合(底层是数组,效率低下),Set接口里包含了HashSet集合(无序不可重复,底层是哈希表),而HashSet集合下包含了LinkedHashSet集合(有序不可重复,底层是哈希表+链表),Map集合里包含着两个子类HashMap集合(底层是哈希表,无序)和LinkedHashMap集合(底层是哈希表+链表,有序)
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
答:Map接口下常用的子类有3个:
①HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需
要重写键的hashCode()方法、equals()方法。
②LinkedHashMap:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
③HashTable:底层也是一个哈希表,是一个线程安全的集合,单线程集合,速度慢。不能存储空值,空键。Hashtable在jdk1.2版本之后被更先进的集合取代了。

2.目前为止,我们所学的遍历map集合有几种方式?
截止目前所学的遍历map集合有两种方式:
【keySet遍历方式】通过调用Map.keyset方法获取Map中的所有键,存储在一个Set中,然后遍历这个Set,通过Map.get方法获取每个键对应的值。
【entrySet遍历方式】通过调用Map.entrySet()方法获取Map中的所有键值对Entry,存储在一个Set中,然后遍历这个Set,通过Entry.getKey()和Entry.getValue()方法分别获取Entry对象中的键和值。

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

集合体系是我们需要存储多个数据,且个数不确定时(无法用数组),使用的容器。
集合体系有两个主要分支:单列集合【Collection】和双列集合【Map】。
【Collection】接口下有两个主要接口【List】和【Set】
【List】接口:
通常表示一个列表(数组、队列、链表、栈等),有序的,
元素是可以重复的,通过索引就可以精确的操作集合中的元素,List接口的特有方法,都是围绕索引定义的。
List获取元素的方式有两种:一种是迭代,还有一种是遍历+get
List接口是支持对元素进行增删改查动作的(add,set,get,remove)
常用的实现类为【ArrayList】和【LinkedList】,还有不常用的【Vector】(已过时)。
1、ArrayList:是数组结构,长度是可变的,原理是(创建新数组+复制数组),查询速度快,增删较慢,不同步。ArrayList不是线程安全的,只能用在单线程环境下
2、LinkedList:是基于双向循环链表实现的,是链表结构,不同步的,增删速度快,查询较慢。
3、Vector:可以增长的数组结构,同步的,效率很低,查询增删凑慢,已过时。
【Set】接口:

不允许包含重复的元素(通过hashcode和equals函数保证),一般不保证顺序,而且方法和Collection一致,set集合取出元素的方式只有一种:迭代器。

常用的实现类为【HashSet】和【LinkedHashSet 】。HashSet是无序的,LinkedHashSet是有序的。一般需要重写hashcode和equals方法。

【Map】

是一个双列集合,一个元素包含两个值(一个key,一个value)。key是不允许重复的,value是可以重复的。

常用的方法有增put、删remove和查get,同时put还有修改的功能。常用的遍历方式有两种:keySet和entrySet遍历方式

常用的实现类有三个:

【HashMap】:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
【LinkedHashMap】:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
【HashTable】:底层也是一个哈希表,是一个线程安全的集合,单线程集合,速度慢。不能存储空值,空键。Hashtable和Vector集合一样,在jdk1.2版本之后被更先进的集合取代了。


回复 使用道具 举报

1.Map接口下有几个子类,各自有什么特点?
Hashmap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法
LinkedHashMap:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
Hashtale:存储数据采用的哈希表结构,键和值不能储存null。是单线程,运行速度慢,但是安全。

2.目前为止,我们所学的遍历map集合有几种方式?
两种。entrySet() 和keySet。

3.请用自己的语言描述你所了解的集合体系
集合体系包含单列集合和双列集合。
单列集合又分为List和Set两大类,其中LIst集合是有序,可以重复的,带索引。常见的LIst的集合有ArrayList,LinkedList.
Set集合不能有重复元素,不带索引。常见的Set集合有HashSet,Linked,HashSet.
双类集合为Map集合为键值对,键值一一对应,键不可重复,值可以,是无序的不带索引。常见的Map集合有HashMap , LinkedHashMap ,Hashtable。
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 加入黑马