簡體   English   中英

LinkedHashMap在所有鍵中都包含相同的值

[英]LinkedHashMap contains same Value in all Key

我是使用LinkedHashMap的新手,我試圖使用.put方法將數組的每個實例(氣泡排序算法)存儲在LinkedHashMap中,但是當我嘗試檢索linkedhashmap的內容時,得到的是一堆副本最終排序數組的值。 如何在LinkedHashMap中存儲數組的所有實例(出現)? 請賜教

這是我的代碼:

private LinkedHashMap<String,double[]> sortBubbleAscend(double[] arrayKo2) {

    double temp = 0; 
    int count = 0;

    LinkedHashMap<String, double[]> map = new LinkedHashMap<String, double[]>();

    for(int i=0; i<arrayKo2.length; i++)
    {
        for(int j=0;j<arrayKo2.length-1;j++)
        {
            if(arrayKo2[j] > arrayKo2[j+1])
            {
                temp=arrayKo2[j];
                arrayKo2[j]=arrayKo2[j+1];
                arrayKo2[j+1]=temp;
            }
            count++;
            map.put("" + count, arrayKo2);       
        }       
    } 

    return map;
}

這是我用來監視LinkedHashMap的值的代碼

     for (Entry<String, double[]> entry : map.entrySet()) 
    {   
        double[] value = entry.getValue();
        for(int p=0; p < value.length; p++)
        {
            Log.d("TEST", "Value: "+ value[p]);
        }
        Log.d("TEST", "----------------"); //printing line to separate each instance of the array   
    }

先感謝您

使用Arrays.copyOf(arrayKo2)而不是arrayKo2當你put

 map.put("" + count, Arrays.copyOf(arrayKo2, arrayKo2.length));

否則, Map每個項目都將引用相同的數組,即。 您正在排序的那個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM