使用HashMap出現的問題

2021-09-24 10:12:51 字數 722 閱讀 6703

在寫關於scocialnetworkcircle的實驗時,老師提供了乙份關係檔案,檔案中有的關係格式為兩個相互認識的人的名字,和親密度。

我想要把這個資訊從檔案讀取之後存在hashmap裡這樣人物關係就對應了,再將degree存在list裡面,degree序號和hashmap裡關係的序號一至,這樣就可以將關係與親密度對應。

並且在之後的的錯誤檢測中我使用了這樣的策略:

要檢測出重複的關係(第乙個人名字和第二個人的名字反過來也算在其中),我通過新增關係後hashmap的大小沒有改變來做出重複的判斷。

這個時候問題出現了!

原來,hashmap中只要key的值一樣就會覆蓋之前的key,想想也對,hashmap中存的是一一對應的關係,怎麼會出現乙個key對應多個value。我通過上網查詢得到了解決方法一:

建立這樣的list:list>。將hashmap存到list裡,就不會出現覆蓋的問題了。

這個時候另乙個問題出現了!

之前判斷重複關係的**失效了,因為不管怎麼重複都不會覆蓋,就無法檢測出重複的關係。我絞盡腦汁想出了解決方法二:

重新建立乙個類apair,這個類和hashmap有異曲同工之處,但自己建立的類,供自己使用自然沒有hashmap複雜。apair只能存一組關係,並且兩個apair equals的條件是key和value都是相同的,這樣一搞,重複的關係也好檢查了,問題就全部解決了。

總結:要是jdk提供的類不好用就自己建立乙個類,符合自己的**的需求,用起來也舒服。

LXC 使用出現的問題

configuration path usr local var lib lxc not found ln s var lib lxc usr local var lib lxc 在配置檔案中,加入lxc.tty 4 然後lxc start,這樣會讓你重新登陸,然後ip也會跟你配好,也可以ssh上面...

使用group concat出現的問題

今天在使用group concat拼接字串時,遇到乙個問題,就是select的結果是沒有資料的,但使用group concat就出現一條空資料。select group concat studentid as studentid from student where studentid 123123...

HashMap的擴容問題

hashmap的重要特性是它的容量 capacity 負載因子 load factor 和擴容極限 threshold resizing 當hashmap中的元素個數 陣列大小 乘以 load factor 負載因子預設為0.75 時,陣列就會擴容。hashmap擴容是非常消耗效能的操作,預設元素的...