贾宗虎
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类的特点是保证存取顺序的一致. |
|
|