Connor学Java - Java容器

在这里插入图片描述

Learn && Live

虚度年华浮萍于世,勤学善思至死不渝

前言

Hey,欢迎阅读Connor学Java系列,这个系列记录了我的Java基础知识学习、复盘过程,欢迎各位大佬阅读斧正!原创不易,转载请注明出处:http://t.csdn.cn/aHb3x,话不多说我们马上开始!

1.介绍一下Java容器的结构?

在这里插入图片描述

1.Collection:存储对象的集合

List:元素有序、可重复的集合

(1)ArrayList:基于同台数组实现,支持随机访问,线程不安全,效率高

(2)Vector:和ArrayList类似,但线程安全,效率低

(3)LinkedList:基于双向链表实现,只能顺序访问,但可以实现快速插入、删除,还可以用作栈、队列和双向队列

Queue

PriorityQueue:基于堆结构实现,可用于实现优先队列

Set:元素无序、不可重复的集合

TreeSet:基于红黑树实现,支持有序性操作,如根据一个范围查找元素

HashSet:基于哈希表实现,支持快速查找,但不支持有序性操作,失去元素的插入信息,即使用Iterator遍历时得到的结果是不确定的。线程不安全,可存储null值

LinkedHashSet:内部使用双向链表维护元素的插入顺序的HashSet

2.Map:存储键值对的映射表

TreeMap:基于红黑树实现

HashMap:基于哈希表实现,线程不安全,效率高,可存储null的key和value

HashTable:和HashMap类似,但线程安全,不能存储null的key和value

Properties:常用来存储、处理配置文件,key和value均为String类型

LinkedHashMap:使用双向链表来维护元素顺序,顺序为插入顺序或最近最少使用顺序(LRU)

2.Collection和Collections的区别?

Collection:最基本的集合接口,一个Collection代表一组Object,即Collection的元素。它的直接继承接口有List、Set、Queue

Collections:java.util.Collections,不属于Java集合框架,是集合类的一个工具类。此类不可实例化,包含有关集合操作的静态多态方法,实现各种集合的搜索、排序、线程安全等操作

3.Collection接口的常用方法有哪些?

方法说明
boolean add(E e)向集合添加元素e,成功则返回true
boolean addAll(Collection<? extends E> c)把集合c中的元素全部添加到集合中,成功则返回true
int size()集合中元素个数
boolean isEmpty()判断集合size是否为0
void clear()清空所有集合元素
boolean contains(Object o)判断指定集合是否包含对象o,使用对象的equals比较
boolean containsAll(Collection<?> c)判断指定集合是否包含集合c的全部元素(equals)
boolean remove(Object o)删除集合中的对象o,若存在多个,则删除第一个(equals)
boolean removeAll(Collection<?> c)删除指定集合包含集合c的全部元素(equals)
boolean retainAll(Collection<?> c)保留指定集合中集合c的全部元素,删除其他元素(equals)
int hashCode()计算集合的哈希值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ConnorYan

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

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

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

打赏作者

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

抵扣说明:

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

余额充值