无法打印我的列表

时间:2014-09-20 06:50:25

标签: java eclipse linked-list

如果你看到我在下面的矩阵中保留数字的位置是根据我的列表,还有保留所有这些数字,当我尝试打印列表时,只发送给我很多这些: 我@ 7852e922这是内存地址?如果对象是打印的。谢谢你的关注。

package estructurasDeDatos;

import java.util.List;

import java.util.LinkedList;

public class Matriz {

    private static Scanner read;

    public static void main(String[] args){
        /*read = new Scanner(System.in);
         System.out.println("Ingrese el numero de filas y columnas: ");
         int f = read.nextInt();
         int c = read.nextInt();*/

        LinkedList ll = new LinkedList();

        System.out.println("     **   **      ***   ******* ****     *****    ***  *****   *****  ");
        System.out.println("    *   **   *   *   *     *    *   *      *     *     *      *       ");
        System.out.println("    *   **   *  *     *    *    *   *      *    *      *      *       ");
        System.out.println("    *        *  *******    *    ****       *    *      ***     ****   ");
        System.out.println("    *        *  *     *    *    *   *      *    *      *           *  ");
        System.out.println("    *        *  *     *    *    *    *     *     *     *           *  ");
        System.out.println("    *        *  *     *    *    *     *  *****    ***  *****  *****   ");
        System.out.println("###########################################################################");
        int mt [][] = new int[10][10];//Genero la matriz con dos arreglos con una cantidad que yo quiera de
        //filas y columnas.

        int num;
        for (int i = 0; i < 10; i++)
        {
            for (int j = 0; j < 10; j++)
            {//Genero un numero aleatorio entre 0 y 100
                num=(int)(Math.random()*100);

                //Asigno el numero generado a la matriz
                mt[i][j]=num;
                ll.push(mt);
            }
        }

        for (int i = 0; i < 10; i++)
        {
            for (int j = 0; j < 10; j++)
            {//Imprimo la celdad de la matriz

                System.out.print(mt[i][j]+"\t");
            }

            System.out.println();
        }
        System.out.println("###########################################################################");
        System.out.println("\n\n");
        System.out.println("LOS NUMEROS DE LA DIAGONAL PRINCIPAL:");
        System.out.print(mt[0][0]+" "+mt[1][1]+" "+mt[2][2]+" "+mt[3][3]+" "+mt[4][4]+" "+mt[5][5]+" "+mt[6][6]+" "+mt[7][7]+" "+mt[8][8]+" "+mt[9][9]+"\n\n");

        int sumatoriadiap=mt[0][0]+mt[1][1]+mt[2][2]+mt[3][3]+mt[4][4]+mt[5][5]+mt[6][6]+mt[7][7]+mt[8][8]+mt[9][9];

        System.out.println("La sumatoria de la diagonal principal es: \n"+sumatoriadiap);

        System.out.println("El promedio de la diagonal principal es : \n"+sumatoriadiap/10);
        ////////////////////////////////////////////////////////////////////////////////////////////////////////
        System.out.println("LOS NUMEROS DE LA DIAGONAL SECUNDARIA:");
        System.out.print(mt[0][9]+" "+mt[1][8]+" "+mt[2][7]+" "+mt[3][6]+" "+mt[4][5]+" "+mt[5][4]+" "+mt[6][3]+" "+mt[7][2]+" "+mt[8][1]+" "+mt[9][0]+"\n\n");

        int sumatoriadias=mt[0][9]+mt[1][8]+mt[2][7]+mt[3][6]+mt[4][5]+mt[5][4]+mt[6][3]+mt[7][2]+mt[8][1]+mt[9][0];

        System.out.println("La sumatoria de la diagonal principal es: \n"+sumatoriadias);

        System.out.println("El promedio de la diagonal principal es : \n"+sumatoriadias/10);
    }
}

2 个答案:

答案 0 :(得分:0)

虽然我没有看到你在哪里打印出你的列表:

System.out.println(ll);

...因为您要在未绑定的LinkedList内添加多维数组,所以必须特别注意打印它们。

首先:您必须自己迭代列表。

for(Object value : ll) {

}

下一步:由于你没有泛型,你必须施放。如果您输入LinkedListLinkedList<int[][]>,则可以更轻松。

然后,您必须使用Array#deepToString,它将以可打印和可表示的方式从数组中获取深层嵌套值。

for(Object value : ll) {
    System.out.println(Arrays.deepToString((int[][]) value));
}

答案 1 :(得分:0)

我相信你在LinkedList

中添加了错误的元素
for (int j = 0; j < 10; j++) {
    num = (int) (Math.random() * 100);
    mt[i][j] = num;
    ll.push(num); //add the random number to the LinkedList instead of the whole 2 dime array
}

然后为打印添加如下内容:

System.out.println(ll);