2017-04-19 74 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