民國114年 第2梯次 電腦軟體設計(JAVA)乙級 學科

第40題

一Java 程式片段如下,執行後下列何者為其輸出?

題目

一Java 程式片段如下,執行後下列何者為其輸出?

  1. (1) [A, B, C, D]
  2. (2) [A, B, C, D, [A], [B]]
  3. (3) [A, B, C, D, [A, B]]
  4. (4) [A, B, C, D, A, B]

官方答案

(3) [A, B, C, D, [A, B]]

解析

關鍵在於集合類別的 add 與 addAll 行為不同:add 是把傳入的物件當成「一個元素」放進串列,addAll 則是把另一個集合的元素逐一攤開加入。若程式先加入 A、B、C、D 等字串,之後再用 add 加入一個本身含有 A、B 的串列物件,該串列只佔一個元素位置,列印時會呼叫其 toString 而以中括號形式呈現,故輸出為 [A, B, C, D, [A, B]]。若改用 addAll,元素會被攤平,輸出就只會是 [A, B, C, D, A, B],與題意不符。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料