【发布时间】:2021-07-15 04:05:12
【问题描述】:
请注意第 3 行中碰撞列的“0”以及其他数字是如何移动的,有什么解决方法? [
这是我当前的输出 System.out.println(""+容量 +"\t\t\t "+size()+"\t\t "+num+"\t\t"+ 数据 + "\t\t\t" +碰撞)
【问题讨论】:
请注意第 3 行中碰撞列的“0”以及其他数字是如何移动的,有什么解决方法? [
这是我当前的输出 System.out.println(""+容量 +"\t\t\t "+size()+"\t\t "+num+"\t\t"+ 数据 + "\t\t\t" +碰撞)
【问题讨论】:
我将从预先计算所有标题字段的长度开始。然后使用它并格式化 io 以编程方式构建表。类似的,
String[] headings = {
"Capacity",
"Size",
"Num",
"data",
"Collisions"
};
int[] lengths = new int[headings.length];
for (int i = 0; i < headings.length; i++) {
lengths[i] = headings[i].length() + 4;
}
int[][] values = {
{ 100, 1, 1, 241, 0 },
{ 100, 2, 1, 289, 0 },
{ 100, 3, 1, 4, 0 }
};
for (int i = 0; i < headings.length; i++) {
System.out.printf("%-" + lengths[i] + "s", headings[i]);
}
System.out.println();
for (int i : lengths) {
for (int j = 0; j < i; j++) {
System.out.print("=");
}
}
System.out.println();
for (int[] arr : values) {
for (int i = 0; i < arr.length; i++) {
System.out.printf("%-" + lengths[i] + "s", arr[i]);
}
System.out.println();
}
输出
Capacity Size Num data Collisions
=================================================
100 1 1 241 0
100 2 1 289 0
100 3 1 4 0
【讨论】: