Java集合之Collection与Map

java中的集合之Collection与Map接口

集合:存储数据的容器

数组与集合的不同:

  1. 数组长度固定,集合长度不固定

  2. 数组只能存放相同类型的数据,集合可以存放不同类型的数据

  3. 数组可以存放简单数据类型,和类类型的数据,集合只能存放类类型的数据

集合框架:java中用来表示集合,和操作集合的所有类库的统称

集合的分类可以分为Collection和Map两种,Collection中存储了一组对象,而Map则是以键值对的的形式进行存储。

Collection接口继承树:

这里写图片描述

其中Collection,List,Set都是接口,无法使用new产生实例,但是可以作为子类的引用使用

Collection collection = new ArrayList<>();

但是这样只能使用collecion中定义的规范,而不能使用ArrayList中特有的属性及方法,如需使用需向下转型。

Map分支继承图:

这里写图片描述

同样Map也是接口,无法使用new产生实例,但是可以作为子类的引用变量

Map map = new HashMap();

Colletion与Map都是集合的最基本的接口,所有集合的类都会遵守这个规范,所以学习集合的第一步是学习这两个接口中的规范。

那就从源码的角度来学习Collection与Map。

1. Collection接口

Collection集合也称为单列集合,一次可以添加一个元素。

int size();

 该方法表示返回集合中的元素数量,当大于Integer所能表示的最大值时,返回最大值



boolean isEmpty();如果集合中不存在元素时返回true,否则返回false



boolean contains(Object o);如果集合中包含改元素则返回true,否则返回false



Iterator<E> iterator();返回此集合中的元素的迭代器,对返回元素没有保证



Object[] toArray();返回包含集合中所有元素的数组,类型为Object可以向下转换为具体的类型数组



boolean add(E e);添加一个元素,加入到集合



boolean remove(Object o);从集合中移除指定的元素,移除成功返回true



boolean containsAll(Collection<?> c);此集合是否包含指定集合的所有元素,是返回true



boolean addAll(Collection<? extends E> c);向集合中添加集合,添加成功则返回true



boolean removeAll(Collection<?> c);移除指定集合中的元素,移除成功则返回true



boolean retainAll(Collection<?> c);与指定集合取交集



void clear();清除集合中的元素

Collection的子接口List是有序的,并且可以存在重复的元素。而子接口Set是无序的,并且不可以存在重复的元素

2.Map接口

map的特点为每次可以添加一对元素,所以Map也被称为双列集合,所谓双列集合就是以键值对的形式存储数据,但是键不能重复,键具有唯一性。

int size();返回Map当中有多少对数据



boolean isEmpty();如果不包含键值对则返回true



boolean containsKey(Object key);是否包含指定的键,包含则返回true



boolean containsValue(Object value);是否包含指定的值,若包含则返回true



V put(K key, V value);存储键值对,并返回前一个与key相关联的value,若没有在返回null



void clear();清空Map集合



V remove(Object key);根据指定的key删除键值对,并返回该值



V get(Object key);通过键获取对应的值,若不包含该键则返回null



Set<K> keySet();返回Map当中所有键的Set视图,说简单点就是把Map中的所有键以Set集合的形式返回



Set<Map.Entry<K, V>> entrySet();返回Map中所包含的映射关系的Set视图,看到这肯定很晕啊,所以简单说就是将Map中的映射关系作为对象存储到Set集合,

而映射的类型为Map.Entry,这样可以以迭代的形式获取Set中的关系Map.Entry<K,V>entry,然后可以用entry.getKey()和entry.getValue()来获取键值



Collection<V> values();返回Map中所有键值对的值,注意返回类型为Collection,有的人也许回想为什么之前是set,而这变成返回Collection了呢?因为键

是具有唯一性的,但是值是可以重复的,Set是不允许重复的,所以改为Collection

以上是Map与Collection的主要内容,只要搞懂了Collection与Map接口,再去学习他们的子类的时候会更轻松的。

也欢迎访问我的博客

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三寸花笺

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值