elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema dificil de arrays
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema dificil de arrays  (Leído 1,312 veces)
4dr14n31t0r

Desconectado Desconectado

Mensajes: 85



Ver Perfil
Problema dificil de arrays
« en: 20 Noviembre 2015, 14:43 pm »

El problema que me he propuesto a mi mismo consiste en crear un array de n dimensiones en tiempo de ejecucion.
(cuidado, no confundir con array de longitud n. Si las dimensiones son 2 es una matriz, de 3 una matriz tridimensional, etc.)
Al principio parece imposible, pero se me ocurrió que si utilizo clases genéricas puedo hacer un array de una dimension más tal y como muestra el ssiguiente código:
Código
  1. package test;
  2.  
  3. public class ClaseGenerica<T> {
  4.  
  5. ClaseGenerica<T[]> t;
  6. T u;
  7.  
  8. Test2<?> u = new Test2<Integer>();
  9. for(int i = 0; i < 10; i++){
  10. u.t = new Test2<>();
  11. u = u.t;
  12. }
  13. public static void main(String... args){
  14.  
  15. ClaseGenerica<Integer> t = new Test2<>();
  16. t.t = new ClaseGenerica<>();
  17. t.t.t = new ClaseGenerica<>();
  18. t.t.t.t = new ClaseGenerica<>();
  19. t.t.t.t.t = new ClaseGenerica<>();
  20. t.t.t.t.t.t = new ClaseGenerica<>();
  21. t.t.t.t.t.t.t = new ClaseGenerica<>();
  22. t.t.t.t.t.t.t.t = new ClaseGenerica<>();
  23. t.t.t.t.t.t.t.t.t = new ClaseGenerica<>();
  24. t.t.t.t.t.t.t.t.t.t = new ClaseGenerica<>();
  25. t.t.t.t.t.t.t.t.t.t.t = new ClaseGenerica<>();
  26. //En total el array tiene 10 dimensiones, no se molesten en contarlos
  27. t.t.t.t.t.t.t.t.t.t.t.u = new Integer[0][][][][][][][][][]; //No da error de compilación
  28. //Como pueden ver, no he necesitado declarar un array de N dimensiones, solo instanciarlo
  29.  
  30. }
  31.  
  32. }

Es un poco evidente que esto se puede hacer tambien con un bucle for y el operador '?' tal y como muestro a continuación, pero el problema viene después al querer instanciar ese array, que es lo que me gustaria a mi saber.

Código
  1. package test;
  2.  
  3. public class ClaseGenerica<T> {
  4.  
  5. ClaseGenerica<T[]> t;
  6. T u;
  7.  
  8. public static void main(String... args){
  9.  
  10. ClaseGenerica<?> t = new ClaseGenerica<Integer>();
  11. for(int i = 0; i < 10; i++){
  12. t.t = new ClaseGenerica<>();
  13. t = t.t;
  14. }
  15. t.u = new Integer[0][][][][][][][][][]; //Obviamente, error de compilación
  16. }
  17.  
  18. }
¿Alguna idea de como solventar este problema? No es que tenga mucha utilidad práctica, pero es por curiosidad


« Última modificación: 8 Diciembre 2015, 00:24 am por 4dr14n31t0r » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con arrays en C#
.NET (C#, VB.NET, ASP)
Edu 4 4,273 Último mensaje 23 Noviembre 2010, 16:08 pm
por Edu
[C++] Problema con Arrays.. « 1 2 »
Programación C/C++
Wazzp 10 5,702 Último mensaje 16 Enero 2011, 20:33 pm
por Wazzp
[C] Problema con Arrays.
Programación C/C++
edr89 6 3,256 Último mensaje 27 Mayo 2013, 20:49 pm
por leosansan
Problema con Arrays
Java
alp 0 1,220 Último mensaje 4 Mayo 2014, 02:02 am
por alp
Problema con Arrays en C (no C++)
Programación C/C++
santibarquero98 7 2,260 Último mensaje 26 Mayo 2015, 23:41 pm
por Peregring-lk
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines