当前位置: 首页 > news >正文

集合、Collection接口特点和常用方法

1、集合介绍

对于保存多个数据使用的是数组,那么数组有不足的地方。比如,

  • 长度开始时必须指定,而且一旦制定,不能更改。

  • 保存的必须为同一类型的元素。

  • 使用数组进行增加/删除元素的示意代码,也就是比较麻烦。

为了解决数组这些不足之处,那么就可以引出集合来处理。下面先说一下集合的好处。

  • 可以动态保存任意多个对象,使用比较方便。

  • 提供了一系列方便的操作对象:add、remove、set、get等。

  • 使用集合添加或删除新元素,代码简洁。

集合体系图如下,Collection是单列接口,Map是双列接口。虚线可以看成实现关系,实线可以看成继承关系。

2、Collection接口实现类的特点

public interface Collection<E>extends Iterable<E>

  • Collection实现子类,可以存放多个元素,每个元素可以是Object。

  • Collection的实现类,有些是有序地(List),有些不是有序(Set)。

  • 有些Collection的实现类,可以存放重复的元素,有些不可以。

  • Collection接口没有直接的实现子类,是通过它的子接口Set和List来实现的。

3、Collection接口常用方法。

以实现子类ArraysList来演示。

方法总结:

add()  // 添加单个元素

remove() //删除指定元素

contains() //查找元素是否存在

size() //获取元素个数

isEmpty() //判断是否为空

clear() //清空

addAll() //添加多个元素

contains All() //查找多个元素是否都存在

removeAll() //删除多个元素

//由于接口不能直接被实例化,只有实现了接口的类才能被实例化,所以这里我们使用ArrayList//使用List接口接收List list = new ArrayList();//add() 添加单个元素list.add("jack");list.add("marry");list.add("smith");System.out.println(list);//[jack, marry, smith]//remove() 删除指定元素list.remove("jack");System.out.println(list);//[marry, smith]//contains() 查找元素是否存在System.out.println(list.contains("jack"));//false//size() 获取元素个数System.out.println(list.size());//2//isEmpty() 判断是否为空System.out.println(list.isEmpty());//false//clear() 清空list.clear();System.out.println(list.isEmpty());//true//addAll() 添加多个元素List list1 = new ArrayList();list1.add(1);list1.add("终极笔记");list1.add("老九门");list.addAll(list1);System.out.println(list1);//[1, 终极笔记, 老九门]// containsAll() 查找多个元素是否都存在System.out.println(list1.containsAll(list1));//true//removeAll() 删除多个元素list1.removeAll(list1);//trueSystem.out.println(list1.size());//0

http://www.lryc.cn/news/352718.html

相关文章:

  • 12. Web开发:介绍Web开发的基本概念,Servlet和JSP的使用,MVC设计模式的应用等。
  • 文件系统--inode
  • 数据清洗(ETL)案例实操
  • Zookeeper 面试题(一)
  • 怎么安装django特定版本
  • 关于Broken pipe异常的一点学习记录
  • 第十一课,end关键字、简单while循环嵌套、初识for循环
  • spring boot 集成mongodb
  • 从零开始搭建SpringCloud Alibaba微服务架构
  • SpringBoot(八)之JdbcTemplate
  • ClickHouse 24.4 版本发布说明
  • amtlib.dll打不开怎么办?一键修复丢失amtlib.dll方法
  • 【退役之重学Java】关于 volatile 关键字
  • “大数据建模、分析、挖掘技术应用研修班”的通知!
  • Uniapp自定义默认返回按钮回退页面
  • 音视频开发5 补充 - Nginx搭建rtmp流媒体服务器,目的是让ffmpeg 可以直播推流
  • 小猫咪的奇幻冒险:一个简单的Python小游戏
  • 专注于运动控制芯片、运动控制产品研发、生产与销售为一体的技术型芯片代理商、方案商——青牛科技
  • 【C++】继承(二)深入理解继承:派生类默认成员函数与友元、静态成员的奥秘
  • 【MATLAB源码-第214期】基于matlab的遗传算法GA最短路径路由优化算法仿真。
  • 数据结构(四)顺序栈 链式栈
  • 【linux】g++/gcc编译器
  • VBA批量合并带有图片、表格与文本框的Word
  • 市面上前 11 名的 Android 数据恢复软件
  • 【数据结构与算法 | 基础篇】数组模拟栈
  • css卡片横线100%宽度
  • 回溯大法总结
  • 基于Android Studio图书管理,图书借阅系统
  • SCSS 基本使用详解
  • 10.3.k8s的附加组件-图形化管理工具dashboard