Java教程

java list有序还是无序_java的集合框架

本文主要是介绍java list有序还是无序_java的集合框架,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言

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

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

0b7d30516cad0206b57a2c5a58ba92dc.png

集合框架

Connection接口

2b08ec24719e284f67acabf05156c674.png

Connection

Connection包含List和Set两大分支:

1、List( 有序、可重复)

ArrayList与Vector

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

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

LinkedList

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

②线程不安全,效率高。

2、Set

HashSet(唯一、无序)

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

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

LinkedHashSet(唯一、有序)

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

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

TreeSet(唯一、有序)

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

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

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

Map接口

323508c501823d21199a72fe3ba8f8ec.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是键值对就差不多了,在一些特殊的场景,比如追求代码效率、线程安全等,那就要仔细区分下这些集合类了。

来源:https://blog.csdn.net/weixin_39948277/article/details/110617490

这篇关于java list有序还是无序_java的集合框架的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!