HashSet vs LinkedHashSet

后端 未结 10 2533
暗喜
暗喜 2020-11-28 18:20

What is the difference between them? I know that

A LinkedHashSet is an ordered version of HashSet that maintains a doubly-linked List across all el

10条回答
  •  再見小時候
    2020-11-28 18:51

    I suggest you to use LinkedHashSet most of the time, because it has better performance overall):

    1. Predictable iteration order LinkedHashSet (Oracle)
    2. LinkedHashSet is more expensive for insertions than HashSet;
    3. In general slightly better performance than HashMap, because the most of the time we use Set structures for iterating.

    Performance tests:

    ------------- TreeSet -------------
     size       add  contains   iterate
       10       746       173        89
      100       501       264        68
     1000       714       410        69
    10000      1975       552        69
    ------------- HashSet -------------
     size       add  contains   iterate
       10       308        91        94
      100       178        75        73
     1000       216       110        72
    10000       711       215       100
    ---------- LinkedHashSet ----------
     size       add  contains   iterate
       10       350        65        83
      100       270        74        55
     1000       303       111        54
    10000      1615       256        58
    

    You can see source test page here: The Final Performance Testing Example

提交回复
热议问题