public void agregarClaveValor(Comparable clave, Object valor)
        {
            ClaveValor         temp = new ClaveValor(clave, valor);
            EstrategiaComparar comparadorAgregar = new PorClave();
            bool existe = false;

            if (this.cuantos() > 0)
            {
                foreach (ClaveValor elemento in this.datos)
                {
                    if (comparadorAgregar.esIgual((Comparable)elemento, (Comparable)temp))
                    {
                        ((ClaveValor)elemento).setValor(valor);
                        //Console.WriteLine("Modifico clave");
                        existe = true;
                    }
                    else
                    {
                        existe = false;
                    }
                }
            }
            if (!existe)
            {
                //Console.WriteLine("Agrego clave");
                //Console.WriteLine((temp.getValor()).GetType() + " " + temp.getValor());
                datos.Add(temp);
            }
        }
        public void agregar(Comparable valor)
        {
            EstrategiaComparar comparadorAgregar = new PorClave();

            num = new Numero(indice);
            Comparable claveTemp = new ClaveValor(num, valor);

            foreach (Comparable elemento in datos)
            {
                if (comparadorAgregar.esMayor((ClaveValor)elemento, (ClaveValor)claveTemp))
                {
                    ((ClaveValor)claveTemp).setClave(((ClaveValor)elemento).getClave());
                }
            }
            indice = (((Numero)((ClaveValor)claveTemp).getClave()).getValor() + 1);
            num.setValor(indice);
            agregarClaveValor(num, valor);
        }