为什么jTable会改变arraylist的顺序?

时间:2015-04-13 04:36:30

标签: java swing arraylist

示例我hava an arraylist。 An = {2,1.5,1.51,1.4} 当我填写列。 Jtable给我看这样的: An = {1.4,1.51,1.5,2}

这是我已经完成的代码。

void VerDatos(){
    String [] titulos= {"n","An","Bn","Pn","F(Pn)"};
    tabla=new  DefaultTableModel(null,titulos);
    Object []object = new Object[6];
    ArrayList iteraciones = new ArrayList();
    iteraciones = Biseccion.getIteraciones();
    ArrayList An = new ArrayList();
    An = Biseccion.getAn(); 
    ArrayList Bn = new ArrayList();
    Bn = Biseccion.getBn();
    ArrayList Fpn = new ArrayList();
    Fpn = Biseccion.getFpn();
    Collections.reverse(Fpn); 


    for (int i = 1; i < iteraciones.size(); i++) {

        object[0] =  i ;
        object[1]= An.get(i);
        object[2]= Bn.get(i);
        object[3]= iteraciones.get(i);
        object[4] = Fpn.get(i) ;
    tabla.addRow(object);

    }

    jTblNumerica.setModel(tabla);


}




       package metododebiseccion;

        import java.util.ArrayList;
       import javax.swing.JOptionPane;

     /**
     *
     * @author Hector Guerrero
    */
 public class Biseccion {
  private static ArrayList<String> An = new ArrayList<String>();
private static ArrayList<String> Bn = new ArrayList<String>();
 private static ArrayList<String> iteraciones = new ArrayList<String>();
 private static ArrayList<String> Fpn = new ArrayList<String>();
 public static ArrayList getAn(){
    return An;
 }
 public static ArrayList getBn(){
    return Bn;
 }
 public static ArrayList getFpn(){
    return Fpn;
 }
 public static ArrayList getIteraciones() {
    return iteraciones;
 }


public double raiz(Funcion f, double a, double b, int nMAx, double tolerancia) {
    double r = Double.NaN;// le damos un valor por defecto por siacaso no encontramos la raiz 
    double c = a;
    int k = 0;
    System.out.print(b);
    iteraciones.add(0, Double.toString(c));// añade a la colecion la primera iteraion
    An.add(0, Double.toString(a));
    Bn.add(0, Double.toString(b));
    Fpn.add(0, Double.toString(f.eval((a+b))/2));

    if (f.eval(a) * f.eval(b) < 0) {
        while (Math.abs(f.eval(c)) > tolerancia && k < nMAx) {

            c = (a + b) / 2;
            if (f.eval(a) * f.eval(c) < 0) {
                b=c;
            }else{
                a=c;
            }
            iteraciones.add(Double.toString(c));// añade a la colecion la tietacion k
            An.add(0, Double.toString(a));
            Bn.add(0, Double.toString(b));
            Fpn.add(0, Double.toString(f.eval(c)));
            k++;
        }

    }


    if (k < nMAx ) {
        r = c;
    }
    if (f.eval(a) * f.eval(b) > 0) {
        JOptionPane.showMessageDialog(null,"f(a)f(b)>0", "no hay cambio de signo",JOptionPane.ERROR_MESSAGE);
         r = Double.NaN;
         iteraciones.clear();
         An.clear();
         Bn.clear();
         Fpn.clear();

    }
    return r;
}

public void borrarColeccion() {
    iteraciones.clear();
    An.clear();
    Bn.clear();
    Fpn.clear();
}

}

赫拉一张照片 enter link description here

0 个答案:

没有答案
相关问题