Java-collction容器
Collection集合接口
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。
主要方法:
boolean add(Object o)添加对象到集合
boolean remove(Object o)删除指定的对象
int size()返回当前集合中元素的数量
boolean contains(Object o)查找集合中是否有指定的对象
boolean isEmpty()判断集合是否为空
Iterator iterator()返回一个迭代器
boolean containsAll(Collection c)查找集合中是否有集合c中的元素
boolean addAll(Collection c)将集合c中所有的元素添加给该集合
void clear()删除集合中所有元素
void removeAll(Collection c)从集合中删除c集合中也有的元素
void retainAll(Collection c)从集合中删除集合c中不包含的元素
List接口
List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置(按照元素插入顺序存储)。用户能够使用get()方法和索引来访问List中的元素。
LinkedList类
LinkedList实现了Deque接口(Deque继承了Queue接口),继承AbstractSequentialList类,允许null元素,底层用双向链表实现,在添加删除方面比较便捷,按照添加顺序存储,没有初始大小。LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。注意:LinkedList是非同步方法。
ArrayList类
ArrayList实现List接口,继承了AbstractList类,底层用可变大小的数组实现,允许所有元素,包括null,在随机访问元素方面比较便捷,按照添加元素顺序存储,初始大小为10,每次扩容当前大小的1/2。ArrayList可用作动态数组。
注意:ArrayList也是非同步的(unsynchronized),Vector非常类似ArrayList,但是Vector是同步的,而且 初始化大小为 10 ,扩容原来的一倍。对于需要快速插入,删除元素,应该使用LinkedList,如果需要快速随机访问元素,应该使用ArrayList。
Set接口
Set是一种不包含重复的元素的Collection(Set最多有一个null元素),无序存储(HashSet不按照元素插入顺序存储,LinkedHashSet按照元素插入顺序存储,TreeSet按照设定的比较顺序进行排序存储)
HashSet类
不允许出现重复元素,不保证集合中元素的顺序,允许包含值为null的元素,但最多只能有一个null元素,查询速度比较快。
注意:ListHashSet可以按照存入元素顺序存储
TreeSet
不允许出现重复元素,底层用红-黑树结构存储,按照存入对象的判定顺序顺序存储(自定义对象要实现Comparable接口,重写compareTo方法)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Logtail 文件日志采集之完整正则模式
前言 为了简化文件日志的采集过程,Logtail 提供了按行采集的极简模式:通过换行符来切分日志,每行作为一条日志。极简模式具有高效、配置简单等优势,但它将整条日志的内容作为整体,而不会对单条日志的内容进行额外解析,在有些场景下无法满足需求。为此,我们还提供了其他解析方式,例如:分隔符模式、完整正则模式、JSON 模式等。 本文将介绍如何使用完整正则模式来实现对日志的解析,并且介绍一些使用此模式时的最佳实践。 完整正则模式 简介 完整正则模式是通过正则表达式实现的日志解析。正则表达式是用于匹配字符串中字符组合的模式,通俗来讲,我们可以通过它来表达我们要什么样的日志。正则表达式具有多个规范,包括 Posix、Perl 等,Logtail 的完整正则模式所支持的语法符合 Perl 正则(PCRE)规范(本文后续内容中所涉及的正则表达式都会采用该规范编写)。 如上图所示,相比极简模式,完整正则模式增加了以下几个功能: 采集多行日志 极简模式仅通过换行符来切分日志,所以它无法采集多行日志(比如 Java 程序的异常堆栈)。 完整正则模式引入了行首正则,补足了采集多行日志的需求。 提取字段 极简...
- 下一篇
Java-io流
处理类型分类:字节流、字符流 数据流向分类:输入流、输出流 File类是IO包中唯一代表磁盘文件本身的对象 File类没有无参构造方法(注意分隔符可以使用"/"和"",但是使用""必须写"\",因为涉及转义的问题) Java的流式输入/输出是建立在四个抽象类的基础上的:InputStream、OutputStream、Reader、Writer Stream结尾的都是字节流,Reader和Writer结尾都是字符流,处理字符或字符串使用字符流类,处理字节或二进制对象使用字节流 字节流转化为字符流,InputStreamReader 字符流转化为字节流,OutputStreamWrite 字符流是一个字节一个字节的读取,字符流是一个字符一个字符读取(1个字符等于2个字节)
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7设置SWAP分区,小内存服务器的救世主
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS关闭SELinux安全模块