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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [Ayuda]Iterator con saltos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda]Iterator con saltos  (Leído 1,347 veces)
d!lan

Desconectado Desconectado

Mensajes: 13


Ver Perfil
[Ayuda]Iterator con saltos
« en: 8 Abril 2014, 00:10 am »

Saludos a la comunidad

bueno lo que sucede es que debo implementar un iterator por saltos, ya tengo una implementacion pero me dicen que asi no lo haga
ejemplo: si el numero de saltos es 2 entonces se visitaran los nodos en los indices
0,2,4,6,8..... si fuera 3 entonces 0,3,6,9........ y asi sucesivamente


Código:
package ufps.util;
import java.util.Iterator;
/**
 *
 *
 *
 */
public class IteratorSaltos<T> implements Iterator<T>
{

private NodoD<T> cab, posicion;
        private int num=0;

        /**
         * Constructor con parametros de la clase
         * @param cab es de tipo Nodo<T> que contiene el nodo cabeza de la lista
         */
IteratorSaltos(NodoD<T> cab,int num) {
            this.cab=cab;
            this.posicion=this.cab.getSig();
            this.num=num;
            
}
        
        /**
         * remueve un dato de la lista
         */
        @Override
        public void remove()
        {}

        /**
         * Método que informa si existe otro elemento en la lista para seguir iterando
         * @return un tipo boolean que informa si existe o no un dato en la lista, desde la posición
         * actual del cursor.
         */
        @Override
public boolean hasNext() {
            
return (this.posicion!=this.cab);
                
}

        /**
         * Método que retorna un dato de la posición actual del cursor del iterador.
         * El cursor queda en la siguiente posición.
         * @return un tipo T que contiene el dato actual
         */
        @Override
public T next()
     {
         T dato = null;
if (this.hasNext()) {
             int con = 0;
             NodoD<T> aux = this.posicion;
            for (; aux != this.cab; aux = aux.getSig()) {
                 if (con == this.num) {
                     break;
                 }
                 con++;
             }
           if (aux != this.cab)
            {
                 dato = this.posicion.getInfo();
                 this.posicion = aux;
                 if(this.posicion.getSig()==this.cab)
                 {
                       this.posicion=this.cab;
                 }
                 return dato;
             }
    throw new RuntimeException("No alcanzan los nodos para dar el salto   ");
}
throw new RuntimeException("No hay mas elementos ");
     }
//fin de la clase
}

Me dicen que debo cambiar ciclo y quitar break y la excepcion
Código:
for (; aux != this.cab; aux = aux.getSig()) {
                 if (con == this.num) {
                     break;
                 }
                 con++;
             }

quitar esta excepcion:
throw new RuntimeException("No alcanzan los nodos para dar el salto ");
}
alguien me podria explicar otra forma de hacerlo :s


« Última modificación: 15 Abril 2014, 16:22 pm por d!lan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA, URG.. con los saltos de Ollydbg
Ingeniería Inversa
kiocha 1 3,293 Último mensaje 6 Septiembre 2006, 05:52 am
por tena
ayuda los saltos en ollydbg desaparecieron
Ingeniería Inversa
.:UND3R:. 1 2,076 Último mensaje 4 Septiembre 2011, 05:18 am
por .:UND3R:.
Duda iterator // Vector iterator not decrementable
Programación C/C++
cazagavilan 4 2,586 Último mensaje 14 Agosto 2013, 13:17 pm
por frankener1986
List iterator not decrementable
Programación C/C++
kaostias 0 1,414 Último mensaje 2 Noviembre 2013, 11:54 am
por kaostias
¡Ayuda mi conexión va a saltos! « 1 2 »
Redes
Felipelf95 10 5,447 Último mensaje 5 Diciembre 2013, 19:05 pm
por Felipelf95
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines