Foro de elhacker.net

Programación => Java => Mensaje iniciado por: MeCraniDOS en 17 Enero 2015, 19:38 pm



Título: [?] Código correcto?
Publicado por: MeCraniDOS en 17 Enero 2015, 19:38 pm
Hola  ;D,

Solo quiero saber si este código es correcto, aunque hace lo que quiero que haga..  :silbar:

Código
  1.    private Object[][] data = {
  2.        {true, "", "", 0, 1, ""},
  3.        {false, "", "", 0, 1, ""},
  4.    };
  5.  
  6.    public void add(Object[] value) {
  7.        data = appendValue(data, value);
  8.    }
  9.  
  10.    private Object[][] appendValue(Object[][] obj, Object[] newObj) {
  11.        ArrayList<Object> temp = new ArrayList<>(Arrays.asList(obj));
  12.        temp.add(newObj);
  13.        return temp.toArray(obj);
  14.    }

Lo unico que hace es añadir un elemento al Object[][], la funcion appendValue es la que no se si es correcta  :huh:

Un saludo



Título: Re: [?] Código correcto?
Publicado por: dragon.kalos en 20 Enero 2015, 14:42 pm
Hola  ;D,

Solo quiero saber si este código es correcto, aunque hace lo que quiero que haga..  :silbar:

Código
  1.    private Object[][] data = {
  2.        {true, "", "", 0, 1, ""},
  3.        {false, "", "", 0, 1, ""},
  4.    };
  5.  
  6.    public void add(Object[] value) {
  7.        data = appendValue(data, value);
  8.    }
  9.  
  10.    private Object[][] appendValue(Object[][] obj, Object[] newObj) {
  11.        ArrayList<Object> temp = new ArrayList<>(Arrays.asList(obj));
  12.        temp.add(newObj);
  13.        return temp.toArray(obj);
  14.    }

Lo unico que hace es añadir un elemento al Object[][], la funcion appendValue es la que no se si es correcta  :huh:

Un saludo



si haces lo que quieres y no da error, es de suponer que es correcto. no?


Título: Re: [?] Código correcto?
Publicado por: Usuario Invitado en 20 Enero 2015, 15:44 pm
En el código que has puesto, haces uso de una matriz Object. Bueno, siguiendo la convención de buenas prácticas de programación en Java, no es muy recomendable hacer ésto ya que tu matriz, array o lista es demasiada genérica. Ésto es válido por supuesto desde el punto de vista si es necesario.

En vez de usar matrices usa Lists. El proceso sería muy sencillo:

Código
  1. class Test
  2. {
  3. public static void main(String[] args)
  4. {
  5. List<Object[]> data = new ArrayList<>();
  6.  
  7. data.add(new Object[]{true, "", "", 0, 1, ""});
  8. data.add(new Object[]{false, "", "", 0, 1, ""});
  9. Helper.addData(data, new Object[]{true,"A","B",1,0,"C"});
  10. Helper.showData(data);
  11. }
  12.  
  13. private static class Helper
  14. {
  15. public static void addData(List<Object[]> data, Object[] value)
  16. {
  17. data.add(value);
  18. }
  19.  
  20. public static void showData(List<Object[]> data)
  21. {
  22. for(Object[] row : data)
  23. {
  24. System.out.println("Fila: "+Arrays.toString(row));
  25. }
  26. }
  27. }
  28. }

Citar
Output:

Fila: [true, , , 0, 1, ]
Fila: [false, , , 0, 1, ]
Fila: [true, A, B, 1, 0, C]

Si quisieras obtener un dato de un arreglo en específico:

Código
  1. System.out.println(data.get(0)[3]); // Muestra '0'