Introduction to the expansion mechanism of HashMap, ArrayList, StringBuilder, and hashmaparraylist in JAVA
Some content in JAVA to be resized is summarized as follows:Part 1:
HashMap HashSet Hashtable Part 2:CopyOnWriteArrayList ArrayList Vector Part 3:StringBuffer sb = new StringBuffer ();StringBuilder sbu = new Strin
Java HashMap and javahashmap
Hash image, which is often used in Java and mainly stores key-value data. HashMap implements the Map interface. The system uses the Hash algorithm to calculate the location where key-value is stored, so that the key-value pair of Map can be quickly accessed.
Storage Implementation of
following code:if (++size > threshold) resize();Summarize1. First make clear the fact that HashMap internally actually holds the data in a one-dimensional array, but the stored element type supports the list structure. So, the HashMap after storing the data looks like a "two-dimensional array" ( Note: not really a two-dimensional array).2. Determine if the HashMap
Java Collection List, Set, Map summary + HashMap/Hashtable difference, hashmaphashtableList: (ordered, can be repeated) through the subscript index ---- ArrayList variable array, random search ---- random List linked List, insert and delete at any location faster ---- Vector efficiency is lower than arraylist, but can be used for multi-thread synchronizationSet :( unordered, not repeated) a set can have a m
, although their contents are the same, but they have different addresses in memory. So it is natural that the above procedure is not going to be the result of our vision. The following changes are made to the element class:Class element{ int number; public Element (int n) { number=n; } public int hashcode () { return number; } public boolean equals (Object o) { return (o instanceof Element) (number== (Eleme
JAVA Study Notes (22)-set HashMap and Hashtable, hashmaphashtableHashMap class
Import java. util. hashMap; import java. util. map;/** HashMap class, which implements the Map interface and stores data key-value */public class Test0
Map is an important data structure, and this article will show you how to use different maps, such as hashmap,treemap,hashtable and Linkedhashmap.MapOverviewThere are four common map implementations in Java, Hashmap,treemap,hashtable and Linkedhashmap, and we can use a sentence to describe each map as follows:
HASHMA
the Map interface have a predictable sequence of iterations. The difference between this implementation and HASHMAP is that Linkedhashmap maintains a two-way loop linked list. This list defines the order of the iterations, which is usually the order in which the elements will be held.It is important to note that if you re-deposit the key in the map, the position of the key will not change, just replace the value.Summarize:The difference between
rewrite it in its hashcode (). There are two principles for rewriting hashcode ():You do not have to produce a unique hashcode for each different object, as long as your Hashcode method enables get () to get the contents of the put () to be put in. That is, "not a principle". The algorithm that generates hashcode as far as possible to make the value of hashcode scattered some, not many hashcode are concentrated in one range, this is advantageous to improve
HashMap uses the data structure, the jargon "list hash", the code is real /** * 定义了一个Entry的数组用来存储数据。 */ transient Entry[] table; ' Java/** * Entry is an internally defined class */Static class Entry
Transient is implemented in a class that is serializable, and is ignored when attributes that are identified by transient are serialized. if (loadfactor Returning true means that
0. PrefaceWork busy, a long time without looking at the algorithm, even the DFA sensitive word algorithm to be optimistic for a while to understand ... is really and third-order Rubik's Cube reduction, the pastoral will be Wu, very pity ah.In the DFA algorithm, the first step is to understand its data structure, on this basis, it involves some hashmap assignment. The assignment here is very interesting, with three
) { ... Find a power of 2 >= initialcapacity int capacity = 1; while (capacity Note that the table initial size is not initialcapacity!! in the constructorBut >= initialcapacity 2 of the power of n!!!!Why are ———— so designed? ——3. Ways to resolve hash conflicts
Open addressing Method (linear detection re-hash, two-time detection and re-hash, pseudo-random detection and hashing)
Re-hash method
Chain Address method
Create a public overflow zone
When it comes to hashmap, people who use the Java language are more familiar with it. Just talk about the hashmap we know today.First, let's look at the HashMap class in Java Public class extends Abstractmapimplements map, cloneable, Serializable { private staticfinallon
, which is not a bug.Data structure of HashMapHashMap mainly use arrays to store data, we all know that it will hash the key, the HA operation will have a duplicate hash value, for the hash value of the conflict, HashMap using the linked list to solve.
In HashMap, there is a property declaration that says:Transient entry[] table;Entry is the class that the HashMap
Java-HashMap analysis, javahashmap
(1) Hash Algorithm
Hash algorithm, which maps the original data to a shorter, fixed-length binary value through the hash function.
The hash algorithm has two basic features: repeatable and irreversible. The hash value calculated theoretically can be repeated, but this is basically not the case for good hash functions. Irreversible means that the hash value cannot be used t
created here.So how did the user set the capacity hashmap initialized? Use the new HashMap (int capacity) constructor:Finally, the constructor is called, and the load factor is the default value. There is no new array, but a critical value is computed. In the previous picture Resize () method, if the table has a size of 0 and Newthr is greater than 0, the array is created according to the size of newthr. T
First of all, Hashmap,hashmap is a class, and all classes in Java inherit from an object class. The Hashcode () method is defined in the object class, in other words, any class will have this hashcode () method.So the Key.hashcode () function calls the hash function with the key key value type and returns the int hash value.First look at the two methods defined i
The difference between HashMap, HashSet, and Hashtable is a common interview topic for Java programmers, which is only recorded in this blog and is thoroughly analyzed in the source code:Before the analysis, the difference is listed below1:hashset the bottom of the HashMap implementation, but there is no key-value, only the H
, HashMap is the first time put into the element, only the capacity of the HashMap and other information to initialize, see below) init (); }Here you can see what the HashMap constructor does:1, HashMap container, default capacity 16, expansion load factor 0.752. The constructor only makes the parameter check and param
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.