java list有序还是无序_java的集合框架
前言
使用java編程語言的開發(fā)人員,在日常開發(fā)過程中經(jīng)常會使用到java的一些集合類,不過這些集合類太多,很多人對它們的特點和使用場景不是特別的了解,通過此文給大家總結(jié)一下這方面的知識,方便大家面試或者是初學者理解。
Java集合類主要由Collection和Map兩個接口派生而出,另外還有遍歷集合的工具Iterator迭代器:
集合框架
Connection接口
Connection
Connection包含List和Set兩大分支:
1、List( 有序、可重復)
ArrayList與Vector
①底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢。
②前者效率高、線程不安全,后者效率低、線程安全。
LinkedList
①底層數(shù)據(jù)結(jié)構(gòu)是鏈表,查詢慢,增刪快。
②線程不安全,效率高。
2、Set
HashSet(唯一、無序)
①底層數(shù)據(jù)結(jié)構(gòu)是哈希表。
②兩個方法:hashCode()和equals()
LinkedHashSet(唯一、有序)
①底層數(shù)據(jù)結(jié)構(gòu)是鏈表和哈希表。
②由鏈表保證元素有序、哈希表保證元素唯一。
TreeSet(唯一、有序)
①底層數(shù)據(jù)結(jié)構(gòu)是紅黑樹。
②自然排序、比較器排序。
③根據(jù)比較的返回值是否是0來決定是否唯一。
Map接口
Map
key-value鍵值對,有三個比較重要的實現(xiàn)類,分別是HashMap、TreeMap和HashTable,這三者之間的區(qū)別:
①TreeMap是有序的,HashMap和HashTable是無序的。
②Hashtable的方法是同步的、線程安全的;HashMap的方法不是同步的、線程不安全。HashMap效率較高,Hashtable效率較低。
③Hashtable不允許null值,HashMap允許null值(key和value都允許)。
④父類不同:Hashtable的父類是Dictionary,HashMap的父類是AbstractMap。
總結(jié)
所有集合類都位于java.util包下,一般的使用場景大家只要知道list有序,set不能重復,map是鍵值對就差不多了,在一些特殊的場景,比如追求代碼效率、線程安全等,那就要仔細區(qū)分下這些集合類了。
來源:https://blog.csdn.net/weixin_39948277/article/details/110617490
總結(jié)
以上是生活随笔為你收集整理的java list有序还是无序_java的集合框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows系统如何查看端口被占用、杀
- 下一篇: 诸暨 丽水 汽车?