Olá se essa sua Collection for um Set qualquer, não irá funcionar deste jeito, porque a interface Set, não indexa posições, você terá que passar o Objeto em si e não a posição dele.
Ex:
public class TesteR {
public static void main(String[] args) {
Set<String> lista = new HashSet<String>();
lista.add("daniel");
lista.add("guj");
lista.add("jose");
lista.add("maria");
for (String string : lista) {
System.out.println(string);
}
String s = "jose";
lista.remove(s);
System.out.println("\n#####Lista removida###");
for (String string : lista) {
System.out.println(string);
}
}
}
Você pode remover esse cliente pelo valor se você definir um método “equals” para ClienteBean, mas aí você precisa passar uma instância de ClienteBean para o método remove, não uma string.
Você pode remover esse cliente pelo valor se você definir um método “equals” para ClienteBean, mas aí você precisa passar uma instância de ClienteBean para o método remove, não uma string.
[/quote]
Foi como falei. Tentei fazer como no exemplo acima mas não consegui. Ele não tira nada da Array.
Tem como vc fazer um exemplo criando esta instancia ai ?
Olá, o que você não está entendendo é o seguinte, o metodo remove da interface collection implementado pela interface list que extends Collection, pede um int, ou um Object, este object que você vai passar ele vai andar na lista invocando o metodo equals da classe que esta na lista, no seu caso ClienteBean, então para funcionar teria que fazer assim:
ClienteBean A = new ClienteBean();
A.setCliNome("Eu");
ClienteBean B = new ClienteBean();
B.setCliNome("Voce");
List<ClienteBean> clientes = new ArrayList<ClienteBean>();
clientes.add(A);
clientes.add(B);
//Para remover você pode passar a posição como por exemplo
cliente.remove(1);
//Ou o objeto que representa este cliente, que o metodo remove ira comparar usando o equals da classe
cliente.remove(B);
Pessoal, o meu caso é o seguinte, estou fazendo um pequeno “programa” que insere Empregados em uma ArrayList, vejam o método main:
public class TesteEmpregado {
public static void main (String args []) {
Scanner s = new Scanner (System.in);
System.out.println("Quantos Empregados deseja adicionar? ");
int n = s.nextInt();
ArrayList list = new ArrayList ();
cadastrar(list, n);
Iterator it = list.iterator();
while (it.hasNext())
System.out.println (it.next());
}
public static void cadastrar (ArrayList al, int n) {
Scanner s = new Scanner (System.in);
for (int i = 0; i < n; i++) {
System.out.println (" --- CADASTRO DE EMPREGADOS --- \n");
System.out.println ("Digite o NOME do Empregado: ");
String nome = s.next();
System.out.println ("Digite o RG do Empregado: ");
int rg = s.nextInt();
System.out.println ("Digite o SALÁRIO do Empregado: ");
double sal = s.nextDouble();
System.out.println ("Empregado é Gerente? S ou N: ");
String opt = s.next();
if (opt.equalsIgnoreCase("N")) {
al.add(new Empregado (nome, rg, sal));
}
else {
System.out.println("Digite o BÔNUS do Gerente: ");
double bonus = s.nextDouble();
al.add(new Gerente (nome, rg, sal, bonus));
}
}
}
Ok, até aí tudo certo, mas quero também implementar um método excluir e um método editar, mas não sei bem como fazer isso. Alguém pode me dar uma luz? Quais parâmetros os métodos excluir e editar vão receber? Como seria a implementação? Algo bem resumido que me dê uma idéia./