Vector<Float> kopieren, vergleichen



  • Hallo,

    ich habe hier ein kleines Problem, wenn ich die Änderungen in einem java.util.Vector von Floats verfolgen will:

    public void update(Vector<Float> new_value) {
    // history und current sind membervariablen (fields)
        history_value = current_value;
        current_value = new_value;
        boolean has_changed = false;
        for (int i = 0; i < current_value.size(); i++)
            if (Math.abs(history_value.get(i) - current_value.get(i)) > epsilon)
                m_has_changed = true;
    }
    

    Problem ist, das has_changed immer false bleibt, weil history_value immer auf new vaue gesetzt wird, weil es eine Referenz und keine Kopie ist.

    Wie kann ich das lösen?

    Philipp



  • Je nachdem wo new_value herkommt ist das nicht das Problem. Die Referenz history_value zeigt zwar dorthin wo vorher noch current_value hingezeigt hat. Aber wenn die Referenz current_value nun auf new_value zeigt entsteht da keine transitive Kette.

    MfG SideWinder


Log in to reply