<> aggregate

​ Java Set is java A toolkit is provided , All inherited from java.util.*. It mainly includes two interfaces Collection Interface and Map Interface and related tool classes (
Iterator Iterator Interface ,Enumeration Enumeration class ,Arrays and Colletions).

(1)Collection It's an interface , contain List List and Set aggregate . among List It's an orderly queue , Element values can be repeated , Index from 0 start , The implementation classes are LinkedList,
ArrayList,Vector; and Set Is a collection that does not allow duplicate elements ,Set The implementation classes of HashSet and TreeSet.HashSet Rely on HashMap
, It's actually through the HashMap Realized ;TreeSet Rely on TreeMap, It's actually through the TreeMap Realized .
(2)Map Is a mapping interface , adopt key-value Key value pair implementation . The implementation classes are HashMap,TreeMap,WeakHashMap,Hashtable.
(3)Iterator Is a tool for traversing collections ,Enumeration It's also a traversal collection , But it's more functional than that Iterator less , Only in Hashtable, Vector,
Stack Use in .
(4)Arrays and `Collections Is an operation array , Two tool classes of the collection .

Here is a more specific comparison :
(1) ArrayList, LinkedList, Vector, Stack yes List Of 4 Implementation classes , Compare their similarities and differences .

1)ArrayList Is an array queue , Equivalent to a dynamic array . It is implemented by an array , High efficiency of random access , Random insertion , The efficiency of random deletion is low . The default size is 10 element

2)LinkedList It's a two-way linked list . It can also be used as a stack , Queue or double ended queue for operation .LinkedList Low efficiency of random access , But randomly inserted , High efficiency of random deletion .

3)Vector It's a vector queue , and ArrayList equally , It is also a dynamic array , Implemented by array . however ArrayList It's not thread safe , and Vector It's thread safe .

4)Stack It's a stack , It inherits from Vector. Its characteristics are : First in, second out (FILO, First In Last Out).

(2)HashMap,HashTable,TreeMap The difference between

1)HashMap It is stored in the form of key value pairs , But there is no guarantee of order , Single thread ; Default size 16, The default expansion factor is 0.75,
structure 1.7 before ( array + Linked list ),1.8 after ( array + Linked list + Red and black trees )

HashMap stay JDK1.8 And later versions introduced the structure of red black tree , If the number of linked list elements in the bucket is greater than or equal to 8 Time , Converting linked list into tree structure ; If the number of linked list elements in the bucket is less than or equal to 6 Time , Tree structure reduced to linked list . Because the average search length of red and black trees is log(n), Count Reg 8 When , The average search length is 3, If you continue to use the linked list , The average search length is 8/2=4, This is necessary to convert to a tree . If the list length is less than or equal to 6,6/2=3, Although the speed is also very fast , But the time to convert to tree structure and spanning tree is not too short .

There are also options 6 and 8, There's a difference in the middle 7 It can effectively prevent frequent conversion of linked list and tree . Suppose , If the number of linked lists exceeds 8 Then the linked list is converted into a tree structure , The number of linked lists is less than 8 Then the tree structure is converted into a linked list , If one HashMap Constantly inserting , Delete element , The number of linked lists is in 8 Wandering left and right , It will happen frequently , Linked list to tree , It's going to be inefficient .

2)HashTable And HashMap The storage method is the same , But it's thread safe ;

3)TreeMap Is an ordered key value pair , Sorting based on red black tree .

©2019-2020 Toolsou All rights reserved,
VUE+Canvas Achieve desktop Pinball brick elimination games C/C++ Memory model 2019PHP Interview questions ( Continuously updated )PHPspringboot2 Separation of front and rear platforms ,token Put in header Pit for verification Vue SpringBoot conduct Excel download element-ui Step on pit record 45 The 12-year-old programmer was turned down , Is the workplace wrong ?Python Web frame Pandas Fundamentals of statistical analysis _ data processing (DataFrame Common operations )Java Misunderstanding —— Method overloading is a manifestation of polymorphism ?