Ajuda com classe de teste em Java

Pessoal alguem que entenda, eu ja quebrei a cabeça e nao consigo descobrir o erro, essa classe de teste nao está imprimindo nada no console quando boto pra rodar, teria algo errado ai?

[quote]package Teste;

import java.util.Iterator;

import voluntariado.ProgramaVoluntariado;
import voluntariado.Voluntario;

public class Teste {

public static void main(String[] args) {

ProgramaVoluntariado prog = new ProgramaVoluntariado(“Luta Contra a Dengue”);

Voluntario v = new Voluntario (“Ziraldo”);
prog.inscrever(v);

v = new Voluntario(“Dario”);
prog.inscrever(v);

v = new Voluntario (“Amarildo”);
prog.inscrever(v);

Iterator itVoluntarios = prog.getVoluntarios();

while(itVoluntarios.hasNext()){
v = itVoluntarios.next();
System.out.println(v.getName());

}

}

}[/quote]

poste os códigos das classes abaixo, pode ser algum problema nelas.

voluntariado.ProgramaVoluntariado;
voluntariado.Voluntario;

Vlw por ajudar amigo segue as classes

[quote]package voluntariado;

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

import ordenacao.Elemento;
import ordenacao.Ordenador;

public class ProgramaVoluntariado {

private String name;
private List<Voluntario> voluntarios;

public ProgramaVoluntariado(String name){
	this.name=name;
	this.voluntarios = new ArrayList<Voluntario>();
	
}

public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}

public void inscrever (Voluntario v){
	if (!this.voluntarios.contains(v)){
		this.voluntarios.add(v);
	}
}

public void desinscrever(Voluntario v){
	this.voluntarios.remove(v);
}

public Iterator<Voluntario> getVoluntarios(){
	
	List<Elemento> listaElementos = new ArrayList<Elemento>();
	
	Iterator<Voluntario> itVoluntarios = this.voluntarios.iterator();
	while(itVoluntarios.hasNext()){
		listaElementos.add(new VoluntarioAdapter(itVoluntarios.next()));
	}
	
	Ordenador ordenador = new Ordenador();
	Iterator<Elemento> itElementos = ordenador.ordenar(listaElementos.iterator());
	
	List<Voluntario> listaResultado = new ArrayList<Voluntario>();
	while(itElementos.hasNext()){
		
	}
	
	VoluntarioAdapter adapter = (VoluntarioAdapter) itElementos.next();
	listaResultado.add(adapter.getVoluntario());


return listaResultado.iterator();
}

}

[/quote]

[quote]package voluntariado;

public class Voluntario {
private String name;

public Voluntario(String name){ 
	this.name=name;
}


public String getName() {
	return name;
}


public void setName(String name) {
	this.name = name;
}

}
[/quote]

não pude compilar o código aqui, por causa dos objetos Ordendor e Elemento, mas me pareceu estranho este trecho de código

[code] final List listaResultado = new ArrayList();
while(itElementos.hasNext()){

    }[/code]

não falta alguma coisa ai?

é algo neste trecho, por que se colocar para retornar o iterador diretamente no getVoluntarios() funciona, é necessário você fazer todas aquelas conversões para ordernar a lista de voluntários, qual a sua necessidade de ordenação? talvez implementando um Comparable na classe Voluntário resolva, e você pode utilizar for aprimorado ao invés de Iterators

for (final Voluntario vol: prog.getVoluntarios()) { System.out.println(vol.getName()); }

[code] public List getVoluntarios(){

    //        final List<Elemento> listaElementos = new ArrayList<Elemento>();
    //
    //        final Iterator<Voluntario> itVoluntarios = this.voluntarios.iterator();
    //        while(itVoluntarios.hasNext()){
    //            listaElementos.add(new VoluntarioAdapter(itVoluntarios.next()));
    //        }
    //
    //        final Ordenador ordenador = new Ordenador();
    //        final Iterator<Elemento> itElementos = ordenador.ordenar(listaElementos.iterator());
    //
    //        final List<Voluntario> listaResultado = new ArrayList<Voluntario>();
    //        while(itElementos.hasNext()){
    //
    //        }
    //
    //        final VoluntarioAdapter adapter = (VoluntarioAdapter) itElementos.next();
    //        listaResultado.add(adapter.getVoluntario());


    return voluntarios;
}[/code]

O código ta compilando aqui sem erro nenhum, minha necessidade de ordenação é por ordem alfabetica.

sim, aqui não compila por que nao saiba da existencia destas dependências de outros objetos que vc criou, para eu poder ver, terá que me passar também estas classes, mas a ordenação você deve fazer assim, sua classe voluntário ficaria assim:

[code]public class Voluntario implements Comparable {
private String name;

public Voluntario(final String name){
    this.name=name;
}


public String getName() {
    return name;
}


public void setName(final String name) {
    this.name = name;
}


@Override
public int compareTo(final Voluntario o) {
    return this.name.compareTo(o.getName());
}

}[/code]

para testar (lembrando vc pode retornar a lista ordenada no get)

final ArrayList<Voluntario> voluntarios = (ArrayList<Voluntario>) prog.getVoluntarios(); Collections.sort(voluntarios); for (final Voluntario vol: voluntarios) { System.out.println(vol.getName()); }

Problema que eu nao posso alterar o codigo por causa do diagrama (é um trabalho de faculdade) , segue as outras classes

[code]package voluntariado;

import ordenacao.Elemento;

public class VoluntarioAdapter implements Elemento {

private Voluntario voluntario;

public VoluntarioAdapter(Voluntario v){
	this.voluntario = v;
}

public Voluntario getVoluntario(){
	return this.voluntario;
}

@Override
public int comparar(Elemento outro) {
	VoluntarioAdapter outroAdapter = (VoluntarioAdapter) outro; //superclasse para subclasse tem que fazer typecast
	
	return this.voluntario.getName().compareTo(outroAdapter.getVoluntario().getName());
}

}
[/code]

[code]package ordenacao;

public interface Elemento {
public int comparar(Elemento outro);

}
[/code]

[code]package ordenacao;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

public class Ordenador {
public Iterator ordenar(Iterator elementos){

	List<Elemento> lista = new ArrayList<Elemento>();
	
	while(elementos.hasNext());
		lista.add(elementos.next());
		
		Elemento[] vetor = new Elemento[lista.size()];
		vetor = lista.toArray(vetor);
		
		int total = lista.size();
		
		for (int i = 0; i < total-1; i++){
			int menor = i;
			for (int j = i+1; j< total; j++)
				if (vetor[j].comparar(vetor[menor]) < 0)
					menor = j;
			
			Elemento temp = vetor [i];
			vetor[i] = vetor [menor];
			vetor[menor] = temp;
		}
		
		lista = Arrays.asList(vetor);
		
		return lista.iterator();
	}

}

[/code]