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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

41 个回复

倒序浏览
今天我们学习了Map集合,请根据自己的理解回答下面问题:
1.Map接口下有几个子类,各自有什么特点?Map接口下常用的子类有HashMap和LinkedMap两个;
HashMap的特点:底层是哈希表结构,查询速度快,元素的存取顺序不能保证一致,并且键的值不能重复,值的值可以重复.
键和值可以存引用类型数据也可以存对象;但是,为了要保证键的唯一性,所以需要重写键值的hashCode()方法和equals()方法;
LinkedMap是HashMap的子类,底层在哈希表的基础上多加了一条链表来保证元素存取顺序一致.与HashMap一样,键值不能
重复,键和值可以存引用类型数据也可以存对象;LinkedMap通过哈希表结构保证键的唯一性,需要重写键值的hashCode()方法和equals()方法;

2.目前为止,我们所学的遍历map集合有几种方式?
有两种方式遍历map集合,一种是通过键找值的方式,一种是通过获取键值对的方式;
键找值: (1)调用KeySet方法获取map的所有键值,存入Set集合中;
            (2)遍历Set集合,通过map集合的get()方法获取每个键对应的值
键值对:(1)调用map集合的entrySet()方法获取集合中的所有键值对对象,存入Set集合中;
           (2)利用迭代器或者增强for遍历Set集合中的键值对对象;
           (3)键值对对象调用getKey()方法和getValue()方法获取键和值

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

从顶层接口来看,分为Collection和Map两大接口;
Collection下又分为List和Set两大类,
(1)List集合的特点是存取有序,有索引值及其相关方法,元素可以重复;
List下有两大常用子类ArrayList和LinkedList;
ArrayList底层采用数组存储元素,所以特点是查询快,增删慢;
LinkedList底层采用链表结构,所以特点是查询慢,增删快;
两个子类看需求情况使用,还有一个比较老的子类Vector已经不怎么使用,特点是安全,效率低;
(2)Set集合的特点是元素存取无序,并且元素不能重复,没有索引;
Set集合下有两个常用子类HashSet和LinkedSet;
HashSet类的特点是元素存取无序,并且不能重复,具有良好的存取和查找性能;
LinkedSet类的特点是底层采用哈希表加链表的结构来实现元素存取有序,元素同样不可重复;

Map又称为双列集合,集合中的每个元素包含键和值两个部分,并且一一对应,键值唯一不能重复,值可以重复,
键和值都可以存放引用类型或对象,
Map接口下常用的实现类有HashMap集合、LinkedHashMap集合
HashMap集合存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需
要重写键的hashCode()方法、equals()方法
LinkedHashMap :HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链
表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的
hashCode()方法、equals()方法。

回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?        HashMap:HashMap底层采用哈希表结构来实现的,HashMap是一个无序的集合(无序是说存储和取出的顺序不一致),他保存的是Key和Value的键值对,在HashMap中,键是需要保证唯一的,如果有相同的键,那么,等同于List集合中的Set方法,他会把具有相同键值的Value值改成后面添加的数据.他的Value可以重复.如果要使用HashMap存储自定义的类型,那么要重写hashCode()方法和equals()方法,来确定键值的唯一性.
         LinkedHashMap:LinkedHashMap是HashMap的子类,LinkedHashMap底层是使用哈希表结构加链表结构来实现的,LinkedHashMap是有序的,它使用链表来保证元素的存取顺序是有序的.LinkedHashMap也是要保证Key值得唯一性,他也可以存储自定义的数据类型.也要重写hashCode()方法和equals()方法,来确定键值的唯一性.
2.目前为止,我们所学的遍历map集合有几种方式?
         keySet()方法,他把Map中所有的键取出,放在Set集合中,然后使用增强for取出在Set集合中的键值,然后通过get()方法取出对应的值.实现遍历Map集合的目的;
         entrySet()方法,直接成对的取出Key和Value的值并把他们封装成键值对对象,然后使用增强for和entrySet()方法提供的getKey()方法和getValue()方法取出Key和Value,也能实现遍历Map集合的目的;
3.请用自己的语言描述你所了解的集合体系


          分为了Collection接口下的集合和Map集合,Collection的集合又分为List集合和Set集合;
          List集合分为ArrayList,和LinkedArrayList还有远古时期遗留的Vactor.List接口下的集合的特点为:有索引,可重复,有序的(存储和取出的顺序是一致的).
          每个子类都有自己的特点,ArrayList的特点为查找速度快,因为他的底层是数组实现,有索引值.但是他的增删速度慢,因为每次使用增删操作时,都需要创建新的数组来实现增删操作.LinkedArrayList的特点是,增删速度快,查找速度慢.因为LinkedArrayList底层采用的是链表结构,所以需要进行增删操作时,只需要改变连接的地址就能实现,不需要创建行的数组,但是查找时,每次都是重头开始查找,所以查找速度慢.Vactor的特点是,他线程安全,是单线程的,所以他的速度比起其他多线程的集合要慢.
          Set集合分为HashSet和LinkerHashSet. Set集合下的特点是,无索引(所以不能使用带所以的方法),不可重复.
           HashSet 是无序的,底层是使用哈希表来实现的,每次存储数据时会计算对应的哈希值,不同直接添加相同会进行equals比较,加快了存储的速度.查找速度也快.
           LinkerHashSet是有序的,他的存储和HashSet相同,只不过多了一个链表来保证元素的有序性及存储和取出的顺序相同.
Map集合下分为HashMap,和LinkedHashMap.他们都是以键值对的方式来存取元素的,都必须要保证Key的值是唯一的.如果具有相同的键,那么就等同与List中的Set方法,会覆盖具有相同值的Value值,他们都可以使用自定义的数据类型,但是如果数据类型当成键时,必须重写hashCode()方法和equals()方法来保证键值的唯一性.
           HashMap底层采用哈希表来实现,他是无序的及存储和取出的顺序不同;
           LinkedHashMap是HashMap的子类,他的底层是通过哈希表加上链表来实现的,他是有序的,及存储和取出的顺序相同.他底层加的链表是为了保证存储的顺序和取出的顺序一致.
回复 使用道具 举报
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接口下有几个子类,各自有什么特点?
答:1.HashMap 特点:底层是哈希表结构,存取无序,不重复,无索引。
2.LinkedHashMap 继承HashMap特点:底层是哈希表 +链表结构,存取有序,不可重复,无索引。
3.HashTableA特点:底层是哈希表,是jdk1.0时的集合,key和value都不容许为null。

2.目前为止,我们所学的遍历map集合有几种方式?
答:两种
1.通过键找值的方式。Map集合通过keyset()方法,获得存储key的set集合,然后通过遍历set集合的方式,
通过get(key)的返回值是value获得value值。

2.通过键值对对象的方式。通过调用entrySet()方法,获得映射关系的键值对set集合。
然后通过getkey()方法和getvalue()方法分别获得key和value。

3.请用自己的语言描述你所了解的集合体系
答:目前来看,大的方面,集合分为两种集合。单列集合和双列集合。
1.单列集合的顶层接口是Collection集合,它又可以分为有序、有索引、可以储存重复元素的List接口,以及无索引、元素不重复的Set接口。
其中list接口的实现类有ArrayLis(底层数组结构,查询快,增删慢)、LinkedList(底层是双向链表,查询慢,增删慢)、Vector(底层数组,单线程安全性好、效率低)
其中Set接口的实现类有HashSet(底层是哈希表,查询非常快,无序)、LinkedHashSet(底层是哈希表+链表,有序)
2. 双列集合是Map集合,存储数据是一对的,分为key和value。要实现存储元素的唯一性,需要重新hashCode(方法)和equals(方法)。实现类有HashMap(底层哈希表,无序)LinkedHashMap(继承HashMap,底层是哈希表和链表结构,有序)、MapTable(底层是哈希表,最早的双链集合,单线程安全速度慢)
单链集合最常用ArrayList集合和HashSet集合,双链集合最常用HashMap集合
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap:底层是哈希表结构,元素的存取顺序不能保证一致,由于要保证键的唯一、不重复,需 要重写键的hashCode()方法、equals()方法。   
LinkedHashMap:HashMap的子类,底层是哈希表结构+链表结构,链表结构保证了存取顺序一致,通过哈希表结构可以保证的键的唯一、不重复,需要重写键的 hashCode()方法、equals()方法   

2.目前为止,我们所学的遍历map集合有几种方式?
1.键找值方式:
(1)通过keyset( )方法获取Map集合中所有的键,返还的是一个存着Map集合中所有的键的Set集合
(2)遍历Set集合,得到集合中的每一个元素,也就是键
(3)使用get(k key)方法,传入键,得到对应的值

2.键值对方式
(1)通过entrySet( )方法得到一个存储所有键值对对象的Set集合,键值对对象就是Entry将key对应的value一起组装起来,封装成对象
(2)遍历Set集合,得到每一个键值对对象
(3)使用getkey( )和getValue( ) ,得到键值对对象的键与值   

3.请用自己的语言描述你所了解的集合体系
目前学到的集合体系分为单列集合Collection接口和双列集合Map接口
Collection接口下有List子接口和Set子接口
List子接口特点:有序;可重复;有索引,包含索引
主要实现类分为1.ArrayList集合,数组结构,查询快,增删慢
                           2.LinkedList集合,哈希表加链表结构,增删快,查询慢
                           3.Vector集合,安全,效率低
Set子接口特点:不可重复;没有索引值
主要实现类HashSet集合,无序,要保证元素唯一性,需要重写hashCode 与 equals 方法;LinkedHashSet,是HashSet集合下的一个子类,是一个有序的集合。

Map接口特点:是一个双列集合,一个key,一个value;key和value的数据类型可重复;key和value一一对应;key内容不可重复,value内容可重复。
主要实现类HashMap,无序,要保证键唯一,必须复写对象的hashCode和equals方法
LinkedHashMap, 存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?Map接口下有三个子类
HashMap:底层是哈希表,查询速度特别快,是一个无序的组合存储元素和取出元素的顺序可能不一样,可以储存null键和null值
LinkedHashMap:是HashMap的实现类接口,比它多了一条链,是双向链结构,是一个有序的集合,其他特点同HashMap
HashTable:底层也是一个哈希表,是一个线程安全的集合,是单线程,查询速度慢,不能储存null键和null值
2.目前为止,我们所学的遍历map集合有几种方式?
两种方式:
用keyset方法,返回一个储存键值的set集合,set集合再使用迭代器或者增强for循环取出set集合中的每一个key,再通过Map集合的get(key)方法,一一取出对应的value值
用entryset方法,返回一个储存Map.entry对象的set集合,set集合再使用迭代器或者增强for循环取出set集合中的每一个对象,再通过entry中的getkey()和getvalue()方法取得对象的值
3.请用自己的语言描述你所了解的集合体系

集合主要分为
单链集合Collection,包含了两个子接口:
List,是有序的,有索引值,可以储存重复对象,其中又包含了三个实现类:
Arraylist、查询快,储存慢
Linkedlist:查询慢,储存快
Vector:安全性高,但是查询速度特别慢
Set,无索引值,不可以存储重复对象,其中包含了一个实现类:
HashSet:底层为哈希表,因为是单向链表,所以是无序的,但是查询速度特别快
LinkedHashSet:HashSet的子类接口,其他特点同HashSet,比它多了一条链,所以是有序的
双链集合Map
包含了两个子类接口:
HashMap:集合底层是哈希表,查询速度特别快
LinkedHashMap:是一个有序的集合,存储元素和取出元素的顺序是一致的
回复 使用道具 举报 1 0

1.Map接口下有几个子类,各自有什么特点?
linkedhashmap:哈希表确定值不重复,键值唯一,链表控制数据按存入顺序存放,自定义类需要重写
                         equals方法和hashcode方法
hashmap:希表确定值不重复,键值唯一,自定义类需要重写equals方法和hashcode方法
2.目前为止,我们所学的遍历map集合有几种方式?
keyset()方法,通过将索引整合成类似数组的空间,声明keyset()对象,增强for循环通过索引找到键所对应的值来遍历
entryset()方法;通过将键和键所对应的值打包成·一个整体,通过将整体整合成类似数组的空间,声明entry对象,增强for循环打印空间内的整体所对应的getkey值和getvalue值来遍历
3.请用自己的语言描述你所了解的集合体系
①list接口的特点是有索引,可重复,有序,有Arraylist(增删慢,查询快)、linkedlist(查询快,增删慢)、vector(单线程,安全,慢)三个子接口
②hashset接口特点无序,无索引,不可重复,有hashset接口(无序,无索引不可重复)和linkedset(存储的顺序,无索引,不可重复)俩哥常用接口
③map也是一个接口,有linkedhashmap(存储的顺序,键值唯一,自定义类需要重写equals方法和hashcode方法)和hashmap(无序,键值唯一,自定义类需要重写equals方法和hashcode方法)以及hashtable(安全,慢,键值和键不能为null)三个常用子接口
④Compare比较器和Comparator比较器相比,Comparator用的更多,因为Compare是在类重写对类所对应的对象都强制自然排序,耦合性太高,Comparator比较器解耦程度比较好,在方法里可以在一定程度上创建自定义规则排序,灵活性更高
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需
要重写键的hashCode()方法、equals()方法。
LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链
表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的
hashCode()方法、equals()方法
2.目前为止,我们所学的遍历map集合有几种方式?
get(key)/keySet/entrySet
3.请用自己的语言描述你所了解的集合体系
不了解

点评

精辟+1  发表于 2018-12-24 11:19
哇 精辟  发表于 2018-12-23 21:43
回复 使用道具 举报 1 0
1.Map接口下有几个子类,各自有什么特点?
Map接口常用的子类有2个,分别为HashMap和LinkedHashMap;
HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
LinkedHashMap:是HashMap的子类,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

2.目前为止,我们所学的遍历map集合有几种方式?
2种,一种是通过遍历键去找值,即先用keySet()将map集合的key值都存储到一个set集合中,再遍历set集合,找出每一个key对应的值;
另一种是通过键值对的方式遍历集合,即先用entrySet()将map集合的键值对都存储到一个set集合中,再遍历set集合,以entry.getKey()和entry.getValue()的方法找到键和值。

3.请用自己的语言描述你所了解的集合体系
目前所学的集合框架分为两大体系,分别是Collection接口体系和Map接口体系。
Collection接口:该接口下又分为两大接口体系,分别为List接口和Set接口。
其中List接口下的集合的特点是有序,有索引值,元素可重复,其主要实现类有ArrayList、LinkedList。ArrayList集合查找快、增删慢,LinkedList查找慢、增删快;
Set接口下的集合的特点是无索引,元素不可重复,其主要实现类有HashSet、LinkedHashSet,其中HashSet集合是无序的,而LinkedHashSet集合是有序的;

Map接口:该接口下的集合特点是无索引,元素不可重复,因底层的数据结构为哈希表,所以查找速度快。其主要实现类有HashMap、LinkedHashMap,其中HashMap集合是无序的,而LinkedHashMap集合是有序的。

回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
        HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
        LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
        tips:Map接口中的集合都有两个泛型变量,在使用时,要为两个泛型变量赋予数据类型。两个泛型变量的数据类型可以相同,也可以不同。
2.目前为止,我们所学的遍历map集合有几种方式?
                键找值方式:即通过元素中的键,获取键所对应的值
                键值对方式:即通过集合中每个键值对(Entry)对象,获取键值对(Entry)对象中的键与值。
                entry键值对对象
3.请用自己的语言描述你所了解的集合体系
        集合体系分为两种
                单列集合Collection
                        Collection 中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。
                双列Map
                        Map中的集合,元素是成对存在的理解为夫妻。每个元素由键与值两部分组成,通过键可以找对所对应的值。
                       
                Collection 中的集合称为单列集合, Map 中的集合称为双列集合。需要注意的是, Map 中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。       
               

回复 使用道具 举报
本帖最后由 陈辉阳 于 2018-12-23 21:32 编辑

HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需 要重写键的hashCode()方法、equals()方法。 LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链 表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的 hashCode()方法、equals()方法。
键找值方式:即通过元素中的键,获取键所对应的值
分析步骤:
1. 获取Map中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键。方法提示: keyset() 2. 遍历键的Set集合,得到每一个键。 3. 根据键,获取键所对应的值。方法提示: get(K key)


回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
hashMap集合特点:底层是哈希表,查询特别快;1.8后数组+单向链表(超过八个转化为红黑树)
                                无序的集合,放入取出顺序可能是不一致的
linkedHashMap集合特点:底层是哈希表+链表(保证迭代顺序)
                                          有序的集合,放入和取出顺序一致(链表记录顺序)
HashTable特点:底层是一个哈希表,线程安全,单线程集合效率低,不允许存储null值。

.目前为止,我们所学的遍历map集合有几种方式?
两种。1.使用键找值的方式:keySet();     get(K);
           2.使用entrySet();    .getKey();    getValue();

3.请用自己的语言描述你所了解的集合体系
根据集合的各种不同的性质创建多个子接口以及各种实现类,可以根据需求使用适合的集合类型
并且可以使用多态来使用接口的方法。
回复 使用道具 举报
续扬 中级黑马 2018-12-23 21:30:58
10#
1.Map接口下有几个子类,各自有什么特点?
HashMap:底层是哈希表(查询速度非常快);是一个无序的集合,存入取出可能元素顺序不一致;存储自定义键值,保证key是唯一的,必须重写hashcode和equals方法LInkHashMap:底层是哈希表+链表(保证迭代的顺序);是一个有序的集合,存入取出可能元素顺序一致
2.目前为止,我们所学的遍历map集合有几种方式?
keyset():把集合中key提取出来存放到set集合内,遍历set集合获取map中的key,通过map集合中的get(key)找到value
entrySet():把map集合中的entry对象提取出来放到set集合内,遍历set获取每一个entry对象,使用entry对象中的方法getKey()和getVaule()获取键与值。
3.请用自己的语言描述你所了解的集合体系
collection接口中包含有List,Set,Map三种接口。其中List里的ArrayList、LinkedList、Vector;Set里的HashSet、LinkedHashSet集合是单列集合,Map里的HashMap、LinkedHashMap是双列集合。

List接口下的集合是有序的集合,可以有重复元素,有索引。
ArrayList集合:底层是数据结构,元素增删慢查找快。
LinkList集合:1.底层是链表结构,查询慢增删快。2.包含大量首尾操作。3.不能使用多态
Vector集合:被淘汰的集合。

Set接口下的集合不可以有重复元素,没有索引。
HashSet集合:底层是哈希表结构(查询速度快),是无序的集合,不允许存储重复元素,没有索引,不能使用for循环遍历。
LinkedHashSet底层:是哈希表+链表结构,保证元素有序

Map接口下的集合一个元素包含两个值(Key,Value),两个可以相同也可以不同元素相互对应,key值可以重复,value不可以重复
HashMap集合:底层是哈希表结构,是无序的集合,可以通过重写hashcode和equals方法自定义键值对。
LInkHashMap集合:底层是哈希表+链表,是一个有序的集合。


点评

Collection接口为单列集合的根接口,Map接口为双列集合的根接口,二者没有包含和被包含关系  发表于 2018-12-25 11:50
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?

Map接口下常用的子类有①HashMap集合,该集合不可以存储重复元素,且存储与取出元素的顺序不一定相同。②LinkedHashMap集合,该集合不可以存储重复元素,但是存储与取出元素的顺序相同,且速度快。③HashTabie集合,这个集合属于元老级的一个集合,安全性高,但是速度慢已经被替代,其一子类Properties 类目前还很活跃在编程中。

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

两种方式,一种是取出map集合中的所有键,放至set集合中,通过set集合编译与map.get(键)来遍历map集合。第二种是利用内部类方法,把键值用Map.Entry方法取出至set集合,遍历set集合达到遍历map集合的目的。

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

集合的顶端分为两种集合,

①一种是单列集合Collection集合,②另一种是双列集合Map集合。

Collection集合分为两大种集合①.a一种是List集合,这种集合的特点是,元素存储有序,元素可以重复。①.b另一种是Set集合,这种集合的特点是,元素不可以重复。

Map集合有主要的两种集合,分别是②.a一种HashMap集合,这种集合的特点是,元素中键值不可重复,元素存储无序。②.b另一种是LinkedHashMap集合,这个集合相比HashMap集合,元素中键值不可重复,元素存储有序,且速度更快。

List集合下有主要的两种集合,①.a.01一个是ArrayList ,该集合底层元素是由数组组成,所以其特点就是,查询元素快,但是增删元素慢。①.a.02另一个是LinkedList集合,这和集合的底层结构是链式结构,所以其特点是查询元素慢,但是增删元素快。

Set集合下有主要的两种集合,②.a.01一个是HashSet 这种集合的特点是,元素不可重复,元素存储无序。②.a.02另一个是这个集合相比HashSet集合,元素不可重复,元素存储有序。


=====================h黄成成
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?Map接口下有HashMap和LinkedHashMap两个子类。
HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
LinkedHashMap:存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

2.目前为止,我们所学的遍历map集合有几种方式?
两种,键找值方式和键值对方式。
键找值:通过keSet()方法获得map中所有的键并遍历每一个键,通过get(key)方法得到每一个键相对应的值。
键值对:通过Entry方法将键值对的对应关系封装成键值对对象,再通过Set entrySet()方法从键值对对象中通过get key()/get value()方法获得相对应的键和值。
值找键:通过Collections接口下的values()方法获得map中所有的值并遍历每一个值,再通过get(value)方法得到每一个值相对应的键。

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

集合体系中包括双链集合和单链集合,双链集合中有map集合,单链集合中有collection集合。Map集合下有HashMap和LinkedHashMap两个子类,Collection集合下有List和Set两个子类,以及ArrayList、LinkedList、Vector、HashSet、LinkedHashSet五个实现类。

集合体系.jpg (79.71 KB, 下载次数: 17)

集合体系.jpg

点评

map是双列集合,单列集合是Collection接口  发表于 2018-12-25 12:06
回复 使用道具 举报
1.Map接口下有HashMap 和LinkedHashMap两个子类。HashMap无序;键不可重复,值可以重复;键和值一一对应,如果重复键,则先前的值会被替换掉;LinkedHashMap和HashMap的区别是LinkedHashMap是有序的。
2.两种方式,通过键找值运用keySet方法遍历或者通过键和值的对应关系运用entrySet方法遍历。
3.集合分为单列集合(Collection接口)和双列集合(Map接口),Collection接口下分为List子接口和Set子接口。List子接口的共性是有序,可重复,有索引,List下主要实现类为ArrayList,LinkedList和Vection,ArrayList数据结构运用的数组,查询快增删慢,LinkedList数据结构运用的是链表,增删快,查询慢,Vection主要特点是数据安全单线程。Set接口的共性是不可重复,无索引,实现类有HashSet和LinkedHashSet,HashSet是无序的,LinkedHashSet是有序的,Set下实现类运用的数据结构是数组+链表/红黑树,查询非常快。Map接口下实现类有HashMap和LinkedHashMap,HashMap无序;键不可重复,值可以重复;键和值一一对应,如果重复键,则先前的值会被替换掉;LinkedHashMap和HashMap的区别是LinkedHashMap是有序的。
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?有HashMap、LinkedHashMap以及HashTable这三个子类,HashMap的特点是不能存储重复的元素,元素的存储与读取的顺序不一定一致,LinkedHashMap与之相比多了一条链表用来记录数据存储时的顺序,这样读取的顺序就能一致,其他都一样;至于HashTable它不能存储null元素,它是单线程的因此运行慢。
2.目前为止,我们所学的遍历map集合有几种方式?
两种,一种是通过键找值keySet方法遍历,另外一种是通过entrySet方法将map里面的元素键值对存入一个set集合,再利用遍历这个set集合完成遍历map集合。
3.请用自己的语言描述你所了解的集合体系

集合分为单列集合和双列集合;单列集合只能存储一个对象,双列集合可以同时存储一对对象,类似单身和情侣之间的区别。单列集合大致分成两个派系,List是有索引值,能存储重复的元素以及元素的存取顺序一致性,而set接口无索引、不能存储重复的元素。因为它的实现类的底层利用的是哈希表,相同元素的哈希值相同就不能再进行存储。Map接口下的实现类HashMap底层也是哈希表结构,因此里面存储的键值对中的键是不能相同的,对于对应的值没有要求,可以是相同类型的也可以是不同类型的,一样也只能存储引用类型数据。因为这样的键与值成对存储的特性,Map在很多情况下都能发挥作用。
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
Map接口下有HashMap集合,LinkedHashMap集合,Hashtable集合。
HashMap集合:底层是哈希表结构,多线程,无序(存入和取出元素不一致),无索引,存储的key键不可重复,能存储null键null值。
LinkedHashMap集合:底层是哈希表+链表结构(有一条链表用来记录存入顺序),多线程,有序(存入和取出元素一致),无索引,存储的key键不可重复,能存储null键null值。
Hashtable集合:底层哈希表结构,单线程,安全,效率低,无序(存入和取出元素不一致),无索引,存储的key键不可重复,不能存储null键null值。

2.目前为止,我们所学的遍历map集合有几种方式?
有两种方式一种是根据根据键找值方式遍历(用keySet方法获取所有key键的Set集合,再用迭代器遍历Set集合用get(key)方法获取value值)。另一种是用键值对方式遍历,(用entrySet方法获取所有的entry对象的Set集合,再用迭代器遍历Set集合用entry对象.getKey()方法获取key值和entry对象.getValue()方法获取value值)。

3.请用自己的语言描述你所了解的集合体系
集合中有Collection接口(单列集合)和Map接口(双列集合),Collection接口下有List接口和Set接口。List接口底下有ArrayList集合:底层是数组结构,多线程不安全,有索引,有序,元素可重复,查询快增删慢,LinkedList集合:底层是双向链表结构,多线程不安全,有索引,有序,元素可重复,查询慢增删快,Vector集合底层是数组,单线程安全,有索引,有序,元素可重复,效率低。它们共同特点:有索引,有序,元素可重复。Set接口底下有HashSet集合:底层是哈希表,多线程不安全,无索引,无序,元素不可重复,存储元素很快。LinkedHashSet集合:底层是哈希表+链表,多线程不安全,无索引,有序,元素不可重复,存储元素很快。它们共同特点:多线程不安全,无索引,元素不可重复,存储元素很快。
Map接口下有HashMap集合:底层是哈希表,多线程不安全,无索引,无序,key键不可重复,存储元素很快,能存null键null值。LinkedHashMap集合:底层是哈希表+链表,多线程不安全,无索引,有序,key键不可重复,存储元素很快,能存null键null值。Hashtable集合:底层是哈希表,单线程安全,效率低,无索引,无序,key键不可重复,不能存null键null值。它们共同特点:无索引,key键不可重复。
回复 使用道具 举报
黄毅 中级黑马 2018-12-23 21:41:41
17#
1.Map接口下有几个子类,各自有什么特点?HashMap :无序,存储的元素不可重复
LinkedHashMap :有序,存储的元素不可重复
2.目前为止,我们所学的遍历map集合有几种方式?
键找值方式:即通过元素中的键,获取键所对应的值
键值对方式:即通过集合中每个键值对(Entry)对象,获取键值对(Entry)对象中的键与值。  

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

单列集合Collection接口下有List和Set接口,List接口下有ArrayList,LinkedList,Vector类
                                                      Set接口下有HashSet,LinkedHashSet类
双列集合Map接口下有HashMap,LinkedHashMap,Hashtable类
ArrayList :底层是数组,因此元素增删慢,查找快
LinkedList :底层的结构是链表结构,因此元素查找慢,增删快。
Set无法存储重复的内容
HashMap :无序,存储的元素不可重复
LinkedHashMap :有序,存储的元素不可重复



回复 使用道具 举报
1:两个 HashMap:保证成对元素唯一,并且查询速度很快 但元素的存取顺序不能保证一致。
LinkedHashMap:保证成对元素唯一,并且查询速度很快 元素的存取顺序一致。
2:2种。KeySet EntrySet
3:集合体系分两种。一种叫单列,另外一种叫双列。单列顶层是Collection 下面分为List,Set。List下面还有3个实现类ArrayList LinkedList vector。
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
常用的有HashMap,Hashtable,LinkedHashMap;
HashMap特点:存取的顺序可能不一样(无序),键不可重复,不能被迭代器遍历;
Hashtable:速度慢,不能存储null值,null键,底层使用的是哈希表,是一个线程安全的单线程集合;
LinkedHashMap:有序,因为底层它的底层多了一层链表来记录它存储时的顺序,键不可重复;
2.目前为止,我们所学的遍历map集合有几种方式?
两种,一种‘键找值’(KeySey()方法)遍历,一种‘键值对’(EntrySet()方法)遍历
3.请用自己的语言描述你所了解的集合体系?
集合就是一个容器,只能用来存储引用数据类型;
Map为双列集合的顶层接口,它常用的子接口有HashMap,Hashtable,LinkedHashMap;
Collections为单列集合的顶层接口,它的子接口有List接口和Set接口,是一个无序的集合;

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