LONGEPASS
Q107.

一Java 程式片段如下,執行後下列何者為其輸出?電腦軟體設計(JAVA) 乙級 Java 第 107 題 題目 圖片

電腦軟體設計(JAVA) · 乙級 · Java · Q107

難易度分析

3 / 5

此題目考查對特定方法回傳型別的精確理解,而非僅僅是功能邏輯。由於選項中包含了容易混淆的執行結果與回傳值,要求考生必須清楚區分方法對原對象的副作用(Side Effect)與其最終回傳的資料類型,具有一定的誘答性。

正確答案:③true

③ true:retainAll() 會保留 list1 中同時存在於 list2 的元素(即 "A" 和 "B"),因 list1 的內容被修改過(移除了 "C" 和 "D"),故回傳 true 表示集合確實被修改。

錯誤選項解析

  • ① [A, B]:retainAll() 方法的回傳型別為 boolean,而非 List 集合,因此不會輸出陣列內容。
  • ② [A, B, C, D]:retainAll() 執行的是交集運算並回傳布林值,不會回傳交集後的 List 內容。
  • ④ false:只有當呼叫 retainAll() 後原集合未發生任何變更時才會回傳 false,本題 list1 從四個元素變為兩個元素,集合已被修改,故回傳 true。
Learning Tip

"retainAll() 是 Collection 介面的重要方法,用於計算兩個集合的交集並直接修改原集合。常考陷阱在於混淆「回傳型別(boolean)」與「修改後的集合內容」,以及誤以為回傳交集結果的 List。實務上需注意此方法會改變原集合,若需保留原資料應先使用 clone() 複製。"

學員答題分佈

①[A, B]0%
②[A, B, C, D]0%
③true0%
④false0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目