Why is insertion order not preserved in MultiMap?

后端 未结 2 906
囚心锁ツ
囚心锁ツ 2021-02-14 16:08
public class MultiMap_Test {
    public static void main(String[] args) {
        Multimap myMultimap = ArrayListMultimap.create();

          myMu         


        
2条回答
  •  夕颜
    夕颜 (楼主)
    2021-02-14 16:42

    Why is insertion order not preserved in MultiMap?

    In fact, your problem is not with MultiMap but with the selected implementation. ArrayListMultimap uses a HashMap> as implementation of the backing Map>:

    public static  ArrayListMultimap create() {
        return new ArrayListMultimap();
    }
    
    //...
    
    private ArrayListMultimap() {
        super(new HashMap>());
        expectedValuesPerKey = DEFAULT_VALUES_PER_KEY;
    }
    

    And HashMap doesn't preserve the order of the insertion of the elements.

提交回复
热议问题