Saturday, October 24, 2015

How LinkedHashSet Works Internally in Java | Java Hungry



How LinkedHashSet Works Internally in Java | Java Hungry
What is Initial capacity  and load factor?

The capacity is the number of buckets(used to store key and value) in the Hash table , and the initial capacity is simply the capacity at the time  Hash table is created.

The load factor is a measure of how full the Hash table is allowed to get before its capacity is automatically increased.
http://692088846.iteye.com/blog/2076452
     Set是通过Map来支持的,Set接口里的所有方法,都委托给内部的Map去实现。
http://zhouyunan2010.iteye.com/blog/1236220
  1. /** 
  2.  * LinkedHashSet实际上是基于LinkedHashMap的基础上实现的, 
  3.  * LinkedHashSet继承自HashSet,在HashSet中有一构造方法 
  4.  * HashSet(int initialCapacity, float loadFactor, boolean dummy)  
  5.  * 第三个参数dummy为true时new出了一个LinkedHashMap实例,以Set中的 
  6.  * 元素为键,以一个Object的虚假的对象为值,所以HashSet中的元素不可能重复。 
  7.  * 以下构造函数dummy都为true 
  8.  */  
  9. public class LinkedHashSet<E>  
  10. extends HashSet<E>  
  11. implements Set<E>, Cloneable, java.io.Serializable {  
  12.   
  13. private static final long serialVersionUID = -2851667679971038690L;  
  14.   
  15.   
  16. public LinkedHashSet(int initialCapacity, float loadFactor) {  
  17.     super(initialCapacity, loadFactor, true);  
  18. }  
  19.   
  20.   
  21. public LinkedHashSet(int initialCapacity) {  
  22.     super(initialCapacity, .75f, true);  
  23. }  
  24.   
  25.   
  26. public LinkedHashSet() {  
  27.     super(16, .75f, true);  
  28. }  
  29.   
  30.   
  31. public LinkedHashSet(Collection<? extends E> c) {  
  32.     super(Math.max(2*c.size(), 11), .75f, true);  
  33.     addAll(c);  
  34. }  
Read full article from How LinkedHashSet Works Internally in Java | Java Hungry

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts