Java基础(18):集合(容器)—Collection和Map两大体系介绍和用法

                      

                 


集合类的作用

  • 集合类也叫做容器类,和数组一样,用于存储数据,但数组类型单一,并且长度固定,限制性很大,而集合类可以动态增加长度。
  • 集合存储的元素都是对象(引用地址),所以集合可以存储不同的数据类型,但如果是需要比较元素来排序的集合,则需要类型一致。
  • 集合中提供了统一的增删改查方法,使用方便。
  • 支持泛型,避免数据不一致和转换异常,还对常用的数据结构进行了封装。

集合框架体系的组成

集合框架体系是由Collection、Map(映射关系)和Iterator(迭代器)组成,各部分的作用如下所示。

Collection体系中有三种集合:Set、List、Queue

  • Set(集): 元素是无序的且不可重复。
  • List(列表):元素是有序的且可重复。
  • Queue(队列):封装了数据结构中的队列。

Map体系

  • Map用于保存具有映射关系的数据,即key-value(键值对)。Map集合的key是唯一的,不可重复,而value可以重复。所以一个value可以对应多个key。
  • Map体系除了常用类之外,还有Properties(属性类)也属于Map体系。

Iterator(迭代器)

  • 基本功能就是遍历集合中的所有元素,除了List集合有一个独有的迭代器Listiterator,别的集合类都是一样的。
  • 每个集合类都有iterator(),调用该方法就能得到迭代器对象。
  • 如果List集合使用迭代器,建议使用ListIterator,比原有的迭代器多了一些方法。
  • 除了使用迭代器遍历集合元素,也可以使用加强for和Java8的foreach()方法。如果是List集合,使用for循环也能做到。

Collection接口方法

Collection是Set、List和Queue接口的父接口,Set、List、Queue的子类都能使用如下方法。

boolean add(E e)_______________________________添加指定元素

boolean addAll(Collection c)___________________将指定集合中所有元素都添加到此 collection

boolean contains(Object o)_____________________集合中是否包含了指定元素

boolean containsAll(Collection<?> c)___________该集合是否包含指定集合中所有元素

boolean remove(Object o)_______________________移除指定元素

boolean removeAll(Collection<?> c)_____________移除指定的collection参数的所有元素

void clear()___________________________________清除集合中所有元素

boolean retainAll(Collection<?> c)_____________保留指定Collection参数中元素,是两个集合的元素交集

boolean equals(Object o)_______________________比较此 collection 与指定对象是否相等

boolean isEmpty()______________________________判断该集合是否为空

Iterator<E> iterator()_________________________返回此 collection 的迭代器,用来遍历元素

int hashCode()_________________________________返回集合的哈希码值

int size()_____________________________________返回此 collection 中的元素数

Object[] toArray()_____________________________返回一个包含该Collection所有元素的对象数组

<T> T[] toArray(T[] a)_________________________返回一个包含该Collection所有元素的数组,数组类型和指定数组的类型一致


Map接口方法

 boolean containsKey(Object key)________________该映射是否包含指定键值

 boolean containsValue(Object value)____________如果该键值对中有一个或多个key射到指定值,则返回 true

 Set<Map.Entry<K,V>> entrySet()_________________返回此映射中包含的映射关系的 Set 视图。 

 Set<K> keySet()________________________________返回此映射中所有键的 Set 视图。 

 Collection<V> values()_________________________返回一个此映射中包含的值的 Collection 

 V get(Object key)______________________________返回指定键映射的值。如果不存在,则返回 null

 V put(K key, V value)__________________________放入一个键值对(key-value)

 void putAll(Map<? extends K,? extends V> m)____把指定映射的所有映射关系复制到此映射中 

 boolean isEmpty()______________________________如果此映射未包含键值映射关系,则返回 true

 boolean equals(Object o)_______________________比较指定的对象与此映射是否相等

 int size()_____________________________________返回此映射中的键-值映射关系数

 int hashCode()_________________________________返回此映射的哈希码值


                             


参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:书香水墨 设计师:CSDN官方博客 返回首页

打赏作者

南纬的风

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值