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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


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

47 个回复

倒序浏览
本帖最后由 黄艺纯 于 2018-8-18 21:36 编辑

1.Map接口下有几个子类,各自有什么特点?
LinkedHashMap:1、保存了记录的插入顺序。
               2、哈希表和链接列表实现。
               3、不是同步的。
HashMap:1、底层也是哈希表数据结构,此集合线程是不同步   效率高。
         2、允许使用 null 值和 null 键。
Hashtable:1、底层数据结构是是哈希表结构,该集合是线程同步的,效率低。
           2、key和value不能为null。
TreeMap:1、底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序
         2、不是同步的。

2.目前为止,我们所学的遍历map集合有几种方式?
  四种:
    1、通过Map.keySet遍历key和value
    2、通过Map.entrySet使用迭代器遍历key和value
    3、通过Map.entrySet使用增强for循环遍历key和value
    4、通过Map.values遍历所有的value,但是不能遍历key

3.请用自己的语言描述你所了解的集合体系
集合的由来:
  面向对象语言对事物都是以对象的形式来体现,为了方便对多个对象的操作,就需要将对象进行存储,集合就是存储对象最常用的一种方式。
集合特点:
1、用于存储对象的容器。(容器本身就是一个对象,存在于堆内存中,里面存的是对象的地址)
2、集合的长度是可变的。
3、集合中不可以存储基本数据类型值。(只能存对象)
Collection子接口以及常用实现类
Collection接口
  List接口:有序(存入和取出的顺序一致),元素都有索引(角标),元素可以重复。
    Vector:内部是数组数据结构,是同步的。增删,查询都很慢!(几乎不用了)  
    ArrayList:内部是数组数据结构,是不同步的。替代了Vector,查询的速度快,增删速度慢。(查询时是从容器的第一个元素往后找,由于数组的内存空间是连续的,所以查询快;增删的话所有元素内存地址都要改变,所以增删慢。)
    LinkedList:内部是链表数据结构,是不同步的。增删元素的速度很快。(同理,链表的内存空间是不连续的,所以查询慢;增删时只需改变单个指针的指向,所以快;)
  Set接口:无序,元素不能重复。Set接口中的方法和Collection一致。
    HashSet: 内部数据结构是哈希表,是不同步的。
      LinkedHashSet:内部数据结构是哈希表和链表,是有顺序的HashSet。
    TreeSet:内部数据结构是有序的二叉树,它的作用是提供有序的Set集合,是不同步的。
List接口:
  有一个最大的共性特点就是都可以操作角标,所以LinkedList也是有索引的。list集合可以完成对元素的增删改查。
Set和List的区别:
  1. Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素 <最本质区别>。
  2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。
    3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变。
Map子接口以及常用实现类
Map:一次添加一对元素,Collection 一次添加一个元素。
     Map也称为双列集合,Collection集合也称为单列集合。
    其实map集合中存储的就是键值对,map集合中必须保证键的唯一性。
Map常用的子类:
  Hashtable :内部结构是哈希表,是同步的。不允许null作为键,null作为值。
    Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合。
  HashMap : 内部结构是哈希表,不是同步的。允许null作为键,null作为值。
    LinkedHashMap:内部结构是哈希表和链表,不是同步,具有可预知的迭代顺序。
  TreeMap : 内部结构是二叉树,不是同步的。可以对Map集合中的键进行排序。




回复 使用道具 举报
本帖最后由 张煜兴 于 2018-8-16 09:16 编辑

1.Map接口下有几个子类,各自有什么特点?
Map存储Key和Value两个对象,Key唯一,对应一个Value值,
HashMap:无序存储,key和value可以null
LinkedHashMap:多一条链表记录顺序,有序,key和value可以null
HashTable:存储的两个对象不能为null



2.目前为止,我们所学的遍历map集合有几种方式?
两种,可以通过KeySet:对Set集合用此方法,获得Key的set集合,再根据这个set集合遍历,用get(Key)方法间接获取value
EntrySet遍历:用此方法获取键值对的set集合,再根据键值对的get方法获取Key和Value

3.请用自己的语言描述你所了解的集合体系
单列集合:Collection(没有索引)包含List(有序,有索引,元素可重复,可以普通for循环)和Set(无序,无索引,元素不重复,不能普通for循环)
双列集合:Map(Key,Value)包含HashMap(无序)和LinkedHashMap(有序),可以增强for循环和迭代器循环,两种遍历方式

回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap:   无序(存取没顺序)   
LinkedHashMap:有序(存取有顺序)
  Hashtable :最早的双列集合    线程安全   用法和HashMap差不多
Properties :唯一和IO流结合的集合
  
2.目前为止,我们所学的遍历map集合有几种方式?
keySet()
entrySet()
values() 返回一个List集合 存放value
3.请用自己的语言描述你所了解的集合体系
单列集合:List:ArrayList,Vector,LinkedList
                  Set:   HashSet,LinkedHashSet,TreeSet
双列集合:Map:HashMap,LinkedHashMap,Hashtable(继承了dictionary  )其子类Properties 是唯一和IO结合的集合
回复 使用道具 举报

yefan

本帖最后由 sulaymanfan 于 2018-8-16 08:59 编辑


1.Map接口下有几个子类,各自有什么特点?    map 类下有狠多类,常用的有两个:
  • hashmap   无序,键不能重复 底层是一个哈希表,是一个线程不安全的集合,是多线程集合,速度快
  • linkedhasmap  有序,键不能重复 底层是一个哈希表,是一个线程不安全的集合,是多线程集合,速度快
2.目前为止,我们所学的遍历map集合有几种方式?
    有三种, 对于有索引值得可以使用三种,普通for循环, 增强for 和迭代器
     如果集合没有索引值可以使用增强for和迭代器.
3.请用自己的语言描述你所了解的集合体系

     Java中集合类定义主要是java.util.*包下面,常用的集合在系统中定义了三大接口,这三类的区别是:
  • java.util.Set接口及其子类,set提供的是一个无序的集合;
  • java.util.List接口及其子类,List提供的是一个有序的集合;
  • java.util.Map接口及其子类,Map提供了一个映射(对应)关系的集合数据结构;

每种集合,都可以理解为用来在内存中存放一组对象的某种”容器“---就像数组.

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


2.目前为止,我们所学的遍历map集合有几种方式?
第一种:通过keySet()方法得到key的set集合,然后通过get()方法得到key对应的value值.
第二种:通过entrySet()方法,得到map集合的键值对对象,然后通过getKey()与getValue()方法,得到key值与value值.
第三种:通过values()方法,得到值得collection集合.


3.请用自己的语言描述你所了解的集合体系
list集合:是collection接口的子接口,其常用的实现类有ArrayList,LinkedList,其特点是该集合的元素有序且允许重复.
set集合:实现类有HashSet,LinkedHashSet,TreeSet,特点是存到该集合元素不允许重复,且无序.(LinkedHashSet元素不允许重复,但元素有序).
map集合:该集合存储的元素是一对的形式,其实现类有,HashMap,LinkedHashMap,存到集合中的key值要保证唯一性,存到集合中value允许重复,其中key与value的关系是唯一对应的,每个key唯一对应一个values.




回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap元素无序,允许键值为null
TreeMap元素有序,查找速度快,不可以有null
2.目前为止,我们所学的遍历map集合有几种方式?
map.entrySet()
map.keySet()
map.value()
3.请用自己的语言描述你所了解的集合体系
存储对象的容器
危mengchao
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?常用的有HashMap<k,v>,LinkedHasdMap<k,v>
前者无序后者有序
2.目前为止,我们所学的遍历map集合有几种方式?
键找值法;键值对对象法;
3.请用自己的语言描述你所了解的集合体系

分为单列集合和双列集合两种。
回复 使用道具 举报
陈建秋
1.Map接口下有几个子类,各自有什么特点?
  HashMap:
(1)存储数据采用的哈希表结构,元素的存取顺序不能保证一致,允许null key和null value(2) 线程不同,速度快,步不安全  LinkedHashMap:(1)存储数据采用哈希表结构加链表,元素存储有序,允许null key和null value(2) 线程不同,速度快,步不安全
  HashTable :(1)键与值不能为空(2)Hashtable是同步的,线程安全,速度慢。
2.目前为止,我们所学的遍历map集合有几种方式?
(1)keySet();
(2)entrySet();
(3)values();
3.请用自己的语言描述你所了解的集合体


                                                                                                 集合
                                      单列集合                                                                                                         双列集合
                                     Collection (无索引)                                                                                        Map(键唯一)
         List  (有序,可重复)                     set (无序,唯一)                                                             HashMap
        ArrayList                                          HashSet                                                                             LikedHashMap
        LinkedList                                        LinkedHashSet                                                                  Hashtable
        Vector                                             TreeSet
回复 使用道具 举报
本帖最后由 丶黑白 于 2018-8-16 09:00 编辑

余志斌
1.Map接口下有几个子类,各自有什么特点?
Map集合下有HashMap和LinkedHashMap两个子类
LinkedHash是以HashMap+链为底层,链用来保证顺序。
2.目前为止,我们所学的遍历map集合有几种方式?
2种,通过keySet方法返回key的set集合
      和通过entrySet方法获得键对封装后的对象的集合。
3 集合分单列集合Collection和双列集合Map。
Collection包含Set以及List
Set包含 hashSet/treeSet/LinkedHashSet
List包含 ArrayList/Vectoy/LinkList

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

   HashMap,存储结构为哈希表结构,元素的存取顺序不能保证一致,要保证键值唯一,要重写Hash()和equals()方法
   LinkedHashMap,存储结构为哈希表+链表结构,元素的存取顺序相同,也要重写Hash()和equals()方法
2.目前为止,我们所学的遍历map集合有几种方式?

   3种方式;通过keyset()方法;
                   entryset()方法;
                   value()方法;
3.请用自己的语言描述你所了解的集合体系

    Collection集合 有常用子类List(List子类ArrayList、LinkedList),Set(Set子类HashSet->LinkedHashSet)
                             List集合有序有索引可重复,Set集合无序无索引不可重复。
    Map集合          有常用子类HashMap->LinkedHashMap
                            均要保持键的唯一性,重写键hashCode()方法、equals()方法。                            其中HashMap存取顺序不同,LinkedHashMap存取顺序相同。
回复 使用道具 举报
1Map接口下有HashMap<K,V>,LinkedHashMap<K,V>,Hashtsble<K,V>等类
HashMap<K,V>特点:结构为数组加单向链表,集合底层是哈希表,查询速度快,是一个无序集合。
LinkedHashMap<K,V>特点:底层是哈希表加链表可以保证迭代顺序,是一个有序集合。
Hashtsble<K,V>特点:底层是哈希表,单线程,速度慢,在1.2版本后被HashMap替代。
2.两种方式遍历Map集合。
第一种是用keySet()方法获取Map集合中的key存放到一个Set集合中,再遍历集合通过key找到value值。
第二种是用entrySet()方法获取Map集合内多个Entry对象,把它们保存到Set集合中,遍历集合
使用Entry中的方法getKey()和getValue()获取键与值。
3集合体现分为单列集合体现和双列集合体系,单列集合体系可以直接遍历集合获取集合中元素
双列集合存储数据方式和单列集合不同分为键和值,两个数据直接一一对应,键的值是唯一的
可以通过把双列集合中的键值取出用单列集合进行遍历从而获得键对应的值。
----------------------------------------------------------------------------------------------周楠
回复 使用道具 举报

1.Map接口下有几个子类,各自有什么特点?
HashMap 存储数据采用的哈希表结构,元素的存取顺序不能保证一致
LinkedHashMap 存储数据采用的哈希表结构+链表结构。通过链
表结构可以保证元素的存取顺序一致
2.目前为止,我们所学的遍历map集合有几种方式?
两种 keyset entryset
3.请用自己的语言描述你所了解的集合体系
单列集合collection 双列集合Map
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap: 底层是哈希表,多线程,线程不安全,速度快,能存储null值,null键
LinkHashMap:相对于HashMap保证的存取的有序性
Hashtable:底层为哈希表,单线程,线程安全,速度慢,不能存储null值null键
2.目前为止,我们所学的遍历map集合有几种方式?
keyset        : 使用“键找值”的方式遍历map集合
entrySet: 使用“键值对”的方式遍历map集合
3.请用自己的语言描述你所了解的集合体系
单列集合:Collection
Collection包括List集合和Set集合,List集合有序有索引值允许重复元素。Set集合不一定为有序集合,无索引值,元素不允许重复用增强for或迭代器进行遍历。
双列集合:Map 元素成对出现,map中的键唯一,值可以重复,键值一一对应,用keySet和entrySet进行遍历。
回复 使用道具 举报


今天我们学习了Map集合,请根据自己的理解回答下面问题:
1.Map接口下有几个子类,各自有什么特点?
两个,
一个底层是哈希表,查询速度快,无序的。
一个底层是哈希表加链表,是有序的
2.目前为止,我们所学的遍历map集合有几种方式?
两种
一种keyset遍历
一种Entry对象遍历
3.请用自己的语言描述你所了解的集合体系
适用性可以,不过到现在还记得当初学习学习第一个集合的时候,貌似说过能用数组建议尽量不用集合编写程序
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
有多个子类,比如HashMap,和LinkedHashMap,HashMap存储数据采用的哈希表结构,元素的存取顺序不能保证一致查询快但无序,LinkedHashMap存储数据采用的哈希表结构+链表结构,保证元素的存取顺序一致,同时也保证了键的唯一、不重复。查询较HashMap慢了一点,但有序。
2.目前为止,我们所学的遍历map集合有几种方式?
两种,一种为public Set<K> keySet() : 获取Map集合中所有的键,在通过map.get(key)获取value的值。另一种为public Set<Map.Entry<K,V>> entrySet() : 获取到Map集合中所有的键值对对象的集合(Set集合),通过遍历集合获取成员变量,用getkey()和getvalue()得到对应的key和value。
3.请用自己的语言描述你所了解的集合体系
集合分为单列集合的collection集合和双列map集合,单列集合collection有分为list集合和set集合,list集合有序,有索引,可重复,set集合无序,无索引,不可重复。list集合可进行排序。Set集合可获得唯一性元素。
Map集合有键值对,是一一映射关系,键是唯一的,并且有唯一对应的值,值对应的键就不一定唯一。有键维护之间的关系。
回复 使用道具 举报
1.Map接口下有几个子类,各自有什么特点?
HashMap:存取顺序不能一致,保证唯一不重复
LinkedHashMap:存取顺序一致,保证唯一不重复

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


3.请用自己的语言描述你所了解的集合体系
集合分为单元集合和双元集合
单元集合又有Lise接口和Set接口,Set接口没有索引值,需要重写保证唯一性,这一点和双元Map接口很像。
双元集合一个对象有两个值。一个是Key键,类似于索引,唯一性和不能重复,然后每一个Key键都有对应的
一个Value值,Value是可以重复的,
回复 使用道具 举报
---------------吴齐宾--------------------------
1.Map接口下有几个子类,各自有什么特点?
1)HashMap :不能保证顺序一致
2)LinkedHashMap 保证了存入和取出的顺序是一致的
2.目前为止,我们所学的遍历map集合有几种方式?
1)迭代器
2)增强for循环
3.请用自己的语言描述你所了解的集合体系
集合分为两大类 Collection为超类的单线程集合,含有list和set集合!
                       Map为超类的双线橙集合.主要代表类HashMap和LinkedHashMap
回复 使用道具 举报
1。HashMap 底层有哈希值构成,是一个线程不安全集合,特点是多线程,速度快
     LinkedHashMap哈希值+链表构成,特点是保证存取数据顺序一致
     Hashtable底层由哈希值构成,是一个线程安全集合,特点是单线程,速度慢
2.keyset: 使用"键找值"遍历map集合  entrySet: 使用"键值对"方式遍历map集合
3.单列集合Collection List允许有序和重复 Set不一定为有序,需要靠迭代器遍历
   双列集合Map 键唯一,值可以重复 ,一个键对应一个值

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

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

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

Map是一个双列集合,里面的key是惟一的,值可以有重复,内容排列需要有序的话可以用LinkedSet方法
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马