簡體   English   中英

Java 實例化和初始化列表(需要解釋)

[英]Java instantiated and initialized list (Explanation needed)

有人可以幫我理解為什么答案是(B)嗎?

private List<String> animals;
public void manipulate()
{
    for (int k = animals.size() - 1; k > 0; k--)
    {
      if (animals.get(k).substring(0, 1).equals("b"))
      {
        animals.add(animals.size() - k, animals.remove(k));
        }
    }
} 
 

假設已使用以下內容實例化和初始化動物。 ["bear", "zebra", "bass", "cat", "koala", "baboon"] 調用 manipulate 后動物的內容會是什么?

(A) ["baboon", "zebra", "bass", "cat", "bear", "koala"]
(B) ["bear", "zebra", "bass", "cat", "koala", "baboon"]
(C) ["baboon", "bear", "zebra", "bass", "cat", "koala"]
(D) ["bear", "baboon", "zebra", "bass", "cat", "koala"]
(E) ["zebra", "cat", "koala", "baboon", "bass", "bear"] 

在第一次迭代中,

K=5  
Baboon is added to index (6 - 5), you get (D)  

第二次迭代,

K=4, element is cat
nothing happens.  

第三次迭代,

K=3, element is bass
bass is added to index (6-3), gets added to its own index, remains (D)  

第四次迭代,

K=2, element is zebra
nothing happens. 

第五次迭代,

K=1, element is baboon
baboon is added to index (6-1) which is its original index, you get (B)

第六次迭代,

K=0. there is no iteration as condition k>0 is not fulfilled.  

暫無
暫無

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

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