Ver Mensaje Individual
  #6 (permalink)  
Antiguo 31/10/2006, 21:46
Avatar de Tipdar
Tipdar
 
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 21 años
Puntos: 7
Así de golpe se me ha ocurrido un algoritmo que te podría servir, pero no creo que sea el más óptimo.

Te transcribo la clase:

Código PHP:

import java
.util.ArrayList;
import java.util.List;

public class 
Clase {
    private static List<
Integer> convertir(int[] arreglo) {
        List<
Integer> lista = new ArrayList<Integer>();
        for (
int i = 0; i < arreglo.length; i++)
            
lista.add(new Integer(arreglo[i]));
        return 
lista;
    }

    public static 
boolean compara(int[] arreglo1, int[] arreglo2) {
        List<
Integer> lista1 = new ArrayList<Integer>(convertir(arreglo1));
        List<
Integer> lista2 = new ArrayList<Integer>(convertir(arreglo2));

        return (
lista2.containsAll(lista1) && lista1.containsAll(lista2));
    }

    public static 
void main(String[] args) {
        
int[] a = new int[] { 1, 2, 3, 4, 5 };
        
int[] b = new int[] { 3, 2, 1, 5, 4 };
        
System.out.println(compara(a, b));
    }

} 
La he desarrollado con la SDK 1.5 de Sun. Para versiones anteriores solo tendrías que quitar la generalización <Integer>. Como te podrás dar cuenta, eso se aleja un poco, por no decir que completamente, del modelo orientado a objetos. Espero que te sirva y si lo optimizas, pues hazmelo saber. :)
__________________
El último TipdaR

Última edición por Tipdar; 31/10/2006 a las 21:52