博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java-collction容器
阅读量:6479 次
发布时间:2019-06-23

本文共 1461 字,大约阅读时间需要 4 分钟。

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方法)

转载地址:http://stwuo.baihongyu.com/

你可能感兴趣的文章
【ssi】增删改查六操作小框架(一)
查看>>
文件系统挂载、卸载及相关的工具free/du/df/dd详解
查看>>
云计算网络基础第二天
查看>>
vue 项目启动完整性校验失败
查看>>
zabbix 系统IO监控_自动发现
查看>>
Ubuntu 桌面相关
查看>>
java的日期工具类
查看>>
CentOS 6.5初始化优化脚本
查看>>
java.lang.IllegalStateException: Web app root system property already set to different value
查看>>
高斯滤波器平滑图像
查看>>
Win7下还原打开方式(未知应用程序)
查看>>
事关健康 你不得不知的打印机常识
查看>>
shell脚本批量监控Linux server配置文件的更改
查看>>
关于linux内核cpu进程的负载均衡
查看>>
UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库
查看>>
Android官方开发文档Training系列课程中文版:键盘输入处理之指定输入的类型
查看>>
jquery的功能函数
查看>>
session欺骗利用思路
查看>>
jvm两种方式获取对象所占用的内存
查看>>
07年三季度微软将推出支持Office Mobile 2007的WindowsMobile6
查看>>