Java各种集合的特点和数据结构

Java各种集合可以看作是一种容器,用来存储对象信息。集合类位于java.util包下,能支持多线程的集合类位于java.util.concurrent包下。
其关系如下图:
网传的
Colloection:单列集合

  1. List 有序,可重复集合:
    ArrayList 基于数组,查询快,增删快,不是线程安全的
    LinkedList 基于链表,查询慢,增删快,不是线程安全的
    Vector 基于数组,查询快, 增删慢,线程安全,但是效率比ArrayList低

2.Set 无序,不可重复集合:
HashSet 基于哈希表,哈希表依赖两个方法:hashCode(), equals();
执行顺序:先看哈希值是否相同即hashCode();
相同:调用equals()方法,判断返回值;
true: 不添加;
false:添加;
不相同:直接添加
LinkedHashSet 基于哈希表和链表,哈希表保证元素唯一,链表保证元素有序
TreeSet 自动排序,基于红黑树,自然平衡二叉树;
保证元素唯一性:看元素返回值是否为0来决定,两种排序方法;
自然排序:元素具备比较性,元素所在类实现Comparable接口,重写compareTo()方法
比较器排序:集合具备比较性,让集合接手一个实现Comparator的类对象,重写compare()方法

Map :双列集合, 数据结构仅对键有效,对值无效,键唯一,值可重复
HashMap 基于哈希表,执行同HashSet,允许null键和null值,不是线程安全的
LinkedHashMap 基于哈希表和链表,哈希表保证元素唯一,链表保证元素有序
Hashtable 基于哈希表,不允许null键和null值,线程安全,但是效率低
TreeMap 基于红黑树,自然平衡二叉树,同TreeSet

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值