-1
该程序使用Java 6功能打印Pascal三角形。 我想从Java 8Java函数的Lambda表达式实现
和λ实现改变逻辑printTriangle()函数public static void triangleusingAL() {
int size = 7;
List<Integer> triList = new ArrayList<Integer>();
Map<Integer, List<Integer>> triMap = new LinkedHashMap<>();
for (int i = 0; i < size; i++) {
List<Integer> rowList = new ArrayList<Integer>();
List<Integer> prevList = new ArrayList<Integer>();
if (i == 0) {
rowList.add(1); // add first element
triMap.put(i, rowList);
continue;
}
rowList.add(1);
prevList = triMap.get(i - 1);
for (int j = 1; j < i; j++) {
int firstNo = prevList.get(j - 1);
int secondNo = prevList.get(j);
rowList.add(firstNo + secondNo);
}
rowList.add(1);
triMap.put(i, rowList);
}
public static void printTriangle(Map<Integer, List<Integer>> triMap) {
System.out.println("\n Pascal Triangle using ArrayList");
int pos = 5 * triMap.size();
int startIndex = pos;
Iterator entries = triMap.entrySet().iterator();
while (entries.hasNext()) {
List<Integer> rowList = new ArrayList<Integer>();
Entry thisEntry = (Entry) entries.next();
rowList = (List<Integer>) thisEntry.getValue();
Iterator listItr = rowList.iterator();
int j = 0;
while (listItr.hasNext()) {
if (j != 0) {
pos = 10;
}
System.out.printf("%" + pos + "s", listItr.next());
j = 1;
}
System.out.println();
startIndex = startIndex - 5;
pos = startIndex;
}
}
定制任何变化量,我无所谓。
什么阻碍了你? –
如果您遇到问题,您需要尝试一下,然后提出问题。 – macoms01
闻起来就像没有任何个人努力的功课... –