首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java基础——Collection接口

Java基础——Collection接口

作者头像
DannyHoo
发布2018-09-13 12:29:35
3620
发布2018-09-13 12:29:35
举报
文章被收录于专栏:Danny的专栏Danny的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337122

  之前写过一篇文章《【J2SE快速进阶】——数组(及其内存分析 )》,在Java编程中,经常会用数组来装载数据,但是数组一个致命的缺点就是一旦初始化,就无法更改长度。

  除了数组,Java还给我们提供了各种形式的容器,用来“盛放”数据。

  Java提供的容器大致有两种,一种继承自Collection(如我们常用的List、Set),另一种继承自Map。

  如上图,我们常用的Set和List两个接口作为“两大派别”都继承自Collection接口。这里说一下Set家族。

  Set和List两者最大的区别是:Set中的内容是不能重复并且无序的;List中的内容是可以重复并且有序的。这里判断重复的条件是:往容器中添加对象时,如果新添的对象与容器中已有的某个对象equals,则重复,这时add()方法会返回false,否则返回true。(如果对equals不理解可以参考《【J2SE快速进阶】——Java中的equals和==的区别》

  比如:

    List list=new ArrayList();
    Set set=new HashSet();
    list.add("hello");
    set.add("hello");
    System.out.println(list.add("hello"));//输出为true  
    System.out.println(set.add("hello"));//输出为false  

  Collection提供了如下方法:

方法名

返回类型

说明

size()

int

返回容器大小(所装对象个数)

clear()

void

清空容器

isEmpty()

boolean

判断是否为空

contains(Object o)

boolean

判断容器中是否包含指定对象

add(Object o)

boolean

添加对象

remove(Object o)

boolean

移除指定对象

iterator()

Iterator

返回Iterator对象

containsAll(Collection c)

boolean

判断容器中是否包含指定容器包含的所有对象

addAll(Collection c)

boolean

添加指定容器包含的所有对象

removeAll(Collection c)

boolean

移除指定容器中包含的所有对象

retainAll(Collection c)

boolean

只保留指定容器中包含的对象

toArray([ T[] a ])

Object[]

返回包含容器中所有对象的数组

  上述方法中,contains()、containsAll()、add()、addAll()、remove()、removeAll()这几个方法在执行的时候,判断对象是否存在、是否相等,都是依据equals方法来寻找、比较对象。因此可以根据需要来重写对象的equals方法,需要注意的是,重写对象equals方法的同时,也一定要重写hashCode方法。

  后面陆续对Collection子接口及其实现类进一步探讨。


【 转载请注明出处——胡玉洋《Java基础——Collection接口》】

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年04月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档