-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
聞起來就像沒有任何個人努力的功課... –