有个java的基本问题,一直没搞清楚,问题很简单:
以下是Pascal's triangle,正确的代码。
在第3行,我之前是这么写的:
List> t = new ArrayList>();
第5行是:ArrayList row = new ArrayList();
结果总是报错‘incompatible type’,这是为什么?
多谢!!!
public class Solution {
public List> generate(int numRows) {
List> t = new ArrayList>();
for (int i = 0; i < numRows; i++) {
List row = new ArrayList();
for (int j = 0; j < i + 1; j++) {
if (j == 0 || j == i) {row.add(1);}
else {int n = t.get(i - 1).get(j - 1) + t.get(i - 1).get(j);
row.add(n);}
}
t.add(row);
}
return t;
}
}
h***k 发帖数: 161
2
List> t = new ArrayList>();
list是interface,建instance的时候要用实体class,比如arraylist
但是里面那一层只是declaration,所以还是要写成list
List> t = new ArrayList>();
往里面加东西的时候,里面一层也要用实体class:
t.add(new ArrayList);
C*******a 发帖数: 448
3
谢谢,这个哪里有讲得比较清楚的,给个链接或者某书某页。
【在 h***k 的大作中提到】 : List> t = new ArrayList>(); : list是interface,建instance的时候要用实体class,比如arraylist : 但是里面那一层只是declaration,所以还是要写成list : List> t = new ArrayList>(); : 往里面加东西的时候,里面一层也要用实体class: : t.add(new ArrayList);