Мне трудно понять, как отформатировать мою печать от arraylist, я просто не знаю, как это сделать. Любые советы или фрагменты, которые могли бы помочь? спасибо
protected void printTable(ArrayList<double[]> table)
{
String s = "";
System.out.printf("\n_____________________________________________________\n");
System.out.printf("\n x\t f[]\t f[,] f[,,] f[,,,] ");
System.out.printf("\n_____________________________________________________\n");
for(int a = 0; a < table.size(); a++)
{
System.out.printf("%.3s", s);
for(double c : table.get(a))
{
System.out.printf("%.3f\t " , c);
}
System.out.println();
}
}
его печать на данный момент:
_____________________________________________________
x f[] f[,] f[,,] f[,,,]
_____________________________________________________
1.000 1.500 0.000 2.000
3.000 3.250 3.000 1.670
0.500 0.167 -0.665
0.333 -1.663
-1.997
как мне это сделать?
_____________________________________________________
x f[] f[,] f[,,] f[,,,]
_____________________________________________________
1.000 3.000 0.500 0.333 -1.997
1.500 3.250 0.167 -1.663
0.000 3.000 -0.665
2.000 1.670
Вы можете обосновать свои столбцы с помощью - flag
System.out.printf("%-.3f\t " , c);
И вы можете указать ширину (измените ширину 10 на то, что вы хотите)
System.out.printf("%-10.3f " , c);
Я бы предположил, что вы удаляете \t
и скорее контролируете ширину, используя флаги ширины и точности (10.3
в приведенном выше примере)
Вы можете управлять порядком печати с использованием 2-мерного массива вместо массива ArrayList
double table [][];
protected void printTable(ArrayList<double[]> table)
{
String s = "";
System.out.printf("\n_____________________________________________________\n");
System.out.printf("\n x\t f[]\t f[,] f[,,] f[,,,] ");
System.out.printf("\n_____________________________________________________\n");
for(int i = 0; i < table.size(); i++) {
for(int a = 0; a < table.size(); a++)
{
if ( table.get(a).length > i ) {
System.out.printf("%.3f\t " , table.get(a)[i]);
}
}
System.out.println();
}
}
Приведенный ниже код поворачивает матрицу для вашего сценария, но я только проверял матрицу nXn, вы должны иметь возможность выйти из нее.
public void printTable(ArrayList<double[]> table)
{
String s = "";
System.out.printf("\n_____________________________________________________\n");
System.out.printf("\n x\t f[]\t f[,] f[,,] f[,,,] ");
System.out.printf("\n_____________________________________________________\n");
int i =0;
for(int a = 0; a < table.size(); a++)
{
System.out.printf("%.3s", s);
for(int j= 0;j<table.size();j++){
double[] d = table.get(j);
for(int k =a;k<=a;k++){
System.out.printf("%.3f\t " , d[k]);
}
}
System.out.println();
}
}