java list有序还是无序 |
您所在的位置:网站首页 › 有序列表与无序列表意义完全相同吗对吗 › java list有序还是无序 |
前言 使用java编程语言的开发人员,在日常开发过程中经常会使用到java的一些集合类,不过这些集合类太多,很多人对它们的特点和使用场景不是特别的了解,通过此文给大家总结一下这方面的知识,方便大家面试或者是初学者理解。 Java集合类主要由Collection和Map两个接口派生而出,另外还有遍历集合的工具Iterator迭代器: 集合框架 Connection接口Connection Connection包含List和Set两大分支: 1、List( 有序、可重复) ArrayList与Vector ①底层数据结构是数组,查询快,增删慢。 ②前者效率高、线程不安全,后者效率低、线程安全。 LinkedList ①底层数据结构是链表,查询慢,增删快。 ②线程不安全,效率高。 2、Set HashSet(唯一、无序) ①底层数据结构是哈希表。 ②两个方法:hashCode()和equals() LinkedHashSet(唯一、有序) ①底层数据结构是链表和哈希表。 ②由链表保证元素有序、哈希表保证元素唯一。 TreeSet(唯一、有序) ①底层数据结构是红黑树。 ②自然排序、比较器排序。 ③根据比较的返回值是否是0来决定是否唯一。 Map接口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 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |