Iterator em J2ME

Fala galera blz?

Achei na net esse código (vou postar uma parte, que a que está dando pau), mas não sabia que J2ME não suporta iterator. O que eu posso utilizar no lugar?

package logica;

import java.util.*;

public class No implements Comparable {
	private String nome = "";
	private Vector arestas = new Vector();
	
	private No anterior;
	private int D = Caminho.INFINITY; // Custo atual do caminho partindo da fonte
	
	public No() {}
	
	public No(String nome) {
		this.setNome(nome);
	}
	
	public String getNome() {
		return this.nome;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public Vector getArestas() {
		return this.arestas;
	}
	
	public void setArestas(Vector arestas) {
		this.arestas = arestas;
	}
	
	public int getPeso(No destino) {
		Iterator i = this.getArestas().iterator(); //aqui está dando erro
		
		while (i.hasNext()) {
			Aresta aresta = (Aresta)i.next(); //aqui também
			
			if ((aresta.getOrigem().compareTo(this) == 0 && aresta.getDestino().compareTo(destino) == 0) ||
				(aresta.getOrigem().compareTo(destino) == 0 && aresta.getDestino().compareTo(this) == 0))
				return aresta.getPeso();
		}
		
		return Integer.MAX_VALUE;
	}
	
	public void adicionarAresta(Aresta aresta) {
		if (aresta == null)
			throw new IllegalArgumentException("Parametro invalido - aresta nula");
		
		if (this.getArestas().indexOf(aresta) == -1)
			this.getArestas().add(aresta); // dando erro
	}
	
	public boolean removerAresta(Aresta aresta) {
		return this.getArestas().remove(aresta); // dando erro
	}
	
	public void removerNo() {
		for (int i = 0; i < this.getArestas().size(); i++) {
			Aresta a = (Aresta)this.getArestas().elementAt(i);
			
			if (a.removerAresta() > 0)
				i--;
		}
	}
	
	public No getAnterior() {
		return this.anterior;
	}
	
	public void setAnterior(No anterior) {
		this.anterior = anterior;
	}
	
	public int getD() {
		return this.D;
	}
	
	public void setD(int D) {
		this.D = D;
	}
	
	public No[] getVizinhos() {
		No[] nos = new No[this.getArestas().size()];
		Iterator i = this.getArestas().iterator(); //erro
		
		if (this.getArestas().size() == 0)
			return null; // Sem nós vizinhos
		
		int count = 0;
		while (i.hasNext()) {
			Aresta aresta = (Aresta)i.next(); //erro
			
			if (aresta.getOrigem().compareTo(this) == 0)
				nos[count] = aresta.getDestino();
			else
				nos[count] = aresta.getOrigem();
			
			count++;
		}
		
		return nos;
	}
	
	public int compareTo(Object obj) {
		if (obj == null)
			return -1;
		
		if (obj instanceof No) {
			No other = (No) obj;
			
			return this.getNome().compareToIgnoreCase(other.getNome()); //ERRO!
		}
		else
			return -1;
	}
	
	public boolean equals(Object obj) {
		return this.compareTo(obj) == 0;
	}
	
	public String toString() {
		return this.getNome();
	}
}

Valew galera!