java 有序list_java的集合框架

前言

使用java编程语言的开发人员,在日常开发过程中经常会使用到java的一些集合类,不过这些集合类太多,很多人对它们的特点和使用场景不是特别的了解,通过此文给大家总结一下这方面的知识,方便大家面试或者是初学者理解。

Java集合类主要由CollectionMap两个接口派生而出,另外还有遍历集合的工具Iterator迭代器:

7e7c16d7e4fc77a2f5ac17c85039a3e1.png

集合框架

Connection接口

da75adc4f7f687943bbc959eec2354e1.png

Connection

Connection包含List和Set两大分支:

1、List( 有序、可重复)

ArrayList与Vector

①底层数据结构是数组,查询快,增删慢。

②前者效率高、线程不安全,后者效率低、线程安全。

LinkedList

①底层数据结构是链表,查询慢,增删快。

②线程不安全,效率高。

2、Set

HashSet(唯一、无序)

①底层数据结构是哈希表。

②两个方法:hashCode()和equals()

LinkedHashSet(唯一、有序)

①底层数据结构是链表和哈希表。

②由链表保证元素有序、哈希表保证元素唯一。

TreeSet(唯一、有序)

①底层数据结构是红黑树。

②自然排序、比较器排序。

③根据比较的返回值是否是0来决定是否唯一。

Map接口

bc0e61fc8dc397538471a80d03239e03.png

Map

key-value键值对,有三个比较重要的实现类,分别是HashMap、TreeMap和HashTable,这三者之间的区别:

①TreeMap是有序的,HashMap和HashTable是无序的。

②Hashtable的方法是同步的、线程安全的;HashMap的方法不是同步的、线程不安全。HashMap效率较高,Hashtable效率较低。

③Hashtable不允许null值,HashMap允许null值(key和value都允许)。

④父类不同:Hashtable的父类是Dictionary,HashMap的父类是AbstractMap。

总结

所有集合类都位于java.util包下,一般的使用场景大家只要知道list有序,set不能重复,map是键值对就差不多了,在一些特殊的场景,比如追求代码效率、线程安全等,那就要仔细区分下这些集合类了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值