1. 程式人生 > >#Java程式設計師一段有序集合程式碼,卻不知有啥問題:求幫忙看看

#Java程式設計師一段有序集合程式碼,卻不知有啥問題:求幫忙看看

在我們剛開始學習程式設計的時候,會出現一些“細節”上的錯誤,這些錯誤可能並不是我們程式碼中有錯誤,而是對於一些概念還不清楚所導致的,然而程式設計偏偏又是一個需要嚴謹的技術活,所以這些細節上的失誤就會造成程式執行出錯!

近日就有一位Java程式設計師寫了一段有序集合程式碼,可是卻不知道出了什麼問題,總是執行出錯!
在這裡插入圖片描述
在這裡插入圖片描述
這段程式碼呼叫了私有制的private,然後用int型的資料型別分別定義兩個集合的物件,之後在用s和v標記了List1集合和List2集合的偏移, 然後進入循壞,之後判斷輸出他們的交集,總體的格式就是這樣的。
在這裡插入圖片描述
有網友認為,這段程式碼的問題非常多,程式碼中不僅加了那麼多臨時變數,而且還用while,這樣會產生異常的,因為根本求不出正確的交集!可是這位程式設計師很不解,程式碼邏輯沒有什麼問題,而且也可以求的出正確的交集,只是會丟失掉最後一個交集變數而已。
在這裡插入圖片描述


有網友給出解釋:這已經不是集合的問題了,而是線性表,因為可能會出現重複的元素,List可能是連結串列,是要用到迭代器的,而且還可能訪問不到最後一個元素,而從整體角度來看,這個方法應該是“返回”而不是用“列印”,因為交集是單獨的功能,List也沒有保證是有序的,需要靠外部邏輯來保證。
在這裡插入圖片描述
在日常的工作和學習中,經常會出現這樣的情況,我們提高自己技術的同時,很忽略這樣偏理論性的知識,這樣造成的錯誤往往是比較嚴重的,所以在動手敲程式碼之餘,可不要忘記鞏固自己的理論知識。