【问题标题】:Transfering objects from list into array将对象从列表传输到数组
【发布时间】:2016-04-18 22:20:09
【问题描述】:

背景信息:kragarm 是一个由两种载荷组成的单链表(单力和力矩都实现了 IBelastung 接口)。我正在尝试将对象复制到一维数组(objekte)中,根据它们的位置对其进行排序,并将其属性(位置、力和力矩)放入二维数组(verlauf)中。方法 bildeAufDouble() 获取负载的位置 这是我的代码:

public double[][] stelleVerlaufDar() {

    IBelastung[] objekte = new IBelastung[kragarm.anzahlElemente()];

    double[][] verlauf = new double[kragarm.anzahlElemente()][3];

    IMeinIterator it = kragarm.iterator();      
    while (it.hatNaechsten()) {         
        IBelastung aktueller = (IBelastung) it.naechsten();

        for (int i = 0; i < objekte.length; i++) {
            objekte[i] = aktueller;     
            System.out.print("| " + String.format("%6.2f",objekte[i].bildeAbAufDouble())+" |");
            System.out.println();
            }
        }

    SortierenEinesFeldes.bubbleSort(objekte);
    System.out.println("Sortierten Laengen");

    for (int i = 0; i < objekte.length; i++) {
        System.out.println("| " + String.format("%6.2f",objekte[i].bildeAbAufDouble())+" |");
    }
    System.out.println();

这是我的控制台 here

为什么它打印5次数字,然后在它应该排序之后,为什么它只打印第一个数字和5次?先感谢您。

【问题讨论】:

    标签: java arrays sorting bubble-sort singly-linked-list


    【解决方案1】:
    for (int i = 0; i < objekte.length; i++) {
        objekte[i] = aktueller;     
    }
    

    这会用相同的元素填充整个数组:aktueller

    您不应该有两个嵌套循环。你应该只有一个,它应该在每次迭代时增加i

    int i = 0;
    while (it.hatNaechsten()) {         
        IBelastung aktueller = (IBelastung) it.naechsten();
        objekte[i] = aktueller;   
        i++;
    }
    

    另外,请注意,您没有将任何内容存储到该方法返回的 verlaufarray 中。

    【讨论】:

    • 非常感谢!是的,这是下一步 - 填写 verlauf。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多