2017-04-19 77 views
-4

我給自己買了一本「破解編碼面試」,希望能夠提高我的算法技能。我對JavaScript非常熟練,但從本書開頭附近的文章中無法理解以下內容。它創建一個動態數組,但有幾件事情我希望有助於理解。從JavaScript中瞭解Java語法

1)據推測這種方法會成爲班級的一部分? 2)ArrayList<String>做什麼,爲什麼出現3次? 3)爲什麼字符串後有[]

如果任何人都可以對JavaScript語法的部分語法進行細分,那些語法會非常棒(主要是上面提到的那些)。翻譯成JavaScript也是非常有用的。

public ArrayList<String> merge(String[] words, String[] more) { 
    ArrayList<String> sentence = new ArrayList<String>(); 
    for (String w : words) sentence.add(w); 
    for (String w : more) sentence.add(w); 
    return sentence; 
} 
+0

你怎麼樣嘗試運行它,並讓我們知道嗎? –

+1

不,我們不打算把它翻譯成另一種語言給你。我不確定你的想法會實現,但它絕對不會成爲任何學習的東西。 –

+0

我想從遠離屏幕的地方讀這本書,也不想在另一種語言中甩掉「hello world」。 – Robin

回答

-1

的方法被稱爲ArrayList<String>因爲它返回類ArrayList由字符串的對象。通常Java數組的長度是固定的,但類別ArrayList的對象是動態的,因此它的長度會發生變化。

它再次用於將句子定義爲ArrayList類和<string>中的對象,以表示它由字符串組成。

您可以看到該方法以參數形式接收兩個String[] s這只是一個Java字符串數組。 (記得Java中的數組是靜態長度)

.add是一個方法,可由ArrayList的對象用來添加元素。

然後它將單詞添加到句子中,然後返回句子。

在Python,我會做這個就像這樣:

import numpy as np  
words = some list 
more = some list 
def merge(x, y): 
    sentence = np.array([]) 
    for w in x: 
      sentence = np.append(sentence, w) 
    for w in y: 
      sentence = np.append(sentence, w) 
    return sentence 
+0

謝謝你。我會很快嘗試Python版本。 – Robin

+1

沒有給出理由的下調對我來說是無益的 - 當有人匿名聲稱「知道更好」,但沒有解釋假定的缺陷時,我如何判斷這個答案的質量(我認爲這非常好)? – Robin