quinta-feira, 27 de janeiro de 2011

Propaganda


Como excluir todos os elementos de uma ArrayList exceto aqueles contidos em outra ArrayList ou coleção

Em algumas situações pode ser útil sabermos como remover de uma ArrayList todos os elementos contidos em outra ArrayList ou coleção. Para isso podemos usar o método removeAll(), que a classe ArrayList herda da interface java.util.List. Veja sua assinatura:

boolean removeAll(Collection c)


E agora veja um exemplo de seu uso:

import java.util.ArrayList;

public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList nomes = new ArrayList();

// cria uma segunda ArrayList que conterá mais strings
ArrayList nomes2 = new ArrayList();

// adiciona itens na primeira lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");
nomes.add("Osmar");
nomes.add("Zacarias");

// adiciona itens na segunda lista
nomes2.add("Maria");
nomes2.add("Zacarias");

// vamos remover da primeira lista todos os elementos
// contidos na segunda lista
nomes.removeAll(nomes2);

// vamos exibir o resultado
for(int i = 0; i < nomes.size(); i++){
System.out.println(nomes.get(i));
}

System.exit(0);
}
}

Como embaralhar os elementos de uma ArrayList

/*
Este exemplo mostra como embaralhar os elementos
de uma ArrayList
*/

import java.util.ArrayList;
import java.util.Collections;

public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList nomes = new ArrayList();

// adiciona itens na lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");
nomes.add("Osmar");

// exibe os elementos da ArrayList
for(int i = 0; i < nomes.size(); i++)
System.out.println(nomes.get(i));

// Vamos embaralhar os itens da ArrayList
Collections.shuffle(nomes);

// exibe os elementos da ArrayList
System.out.println();
for(int i = 0; i < nomes.size(); i++)
System.out.println(nomes.get(i));

System.exit(0);
}
}

URL: http://www.arquivodecodigos.net/dicas/1088

Como adicionar todos os elementos de uma ArrayList ou coleção à uma outra ArrayList

Em algumas situações pode ser necessário adicionar todos os elementos de uma ArrayList ou outra coleção a uma determinada ArrayList já existente. Isso pode ser feito por meio do uso do método addAll() da classe ArrayList. Na versão 1.5 do Java, este método possui duas assinaturas. Veja a primeira:

public boolean addAll(Collection c)


Aqui nós podemos adicionar à uma ArrayList existente todos os elementos de uma determinada coleção, desde que, é claro, esta coleção implemente ou descenda de alguma classe que implemente a interface Collection. Note também o uso de genéricos na coleção a ser fornecida como argumento. É importante observar que, se passarmos uma coleção de tipos diferentes daquela na qual estamos chamando o método addAll() teremos um erro de compilação.

Veja um exemplo no qual adicionamos todos os elementos de uma ArrayList no final de outra:

import java.util.ArrayList;

public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList nomes = new ArrayList();

// cria uma segunda ArrayList que conterá mais strings
ArrayList nomes2 = new ArrayList();

// adiciona itens na primeira lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");

// adiciona itens na segunda lista
nomes2.add("Osmar");
nomes2.add("Zacarias");

// vamos adicionar os elementos da segunda lista
// no final da primeira lista
nomes.addAll(nomes2);

// vamos exibir o resultado
for(int i = 0; i < nomes.size(); i++){ System.out.println(nomes.get(i)); } System.exit(0); } } A segunda assinatura do método addAll() nos permite definir a posição no ArrayList alvo a partir da qual os elementos da coleção fonte serão adicionados. Veja: public boolean addAll(int index, Collection c)


Eis um exemplo no qual inserimos os elementos de uma ArrayList a partir do segundo elemento da ArrayList alvo. Note que os itens existentes têm suas posições alteradas de forma a acomodar os novos elementos:

import java.util.ArrayList;

public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList nomes = new ArrayList();

// cria uma segunda ArrayList que conterá mais strings
ArrayList nomes2 = new ArrayList();

// adiciona itens na primeira lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");

// adiciona itens na segunda lista
nomes2.add("Osmar");
nomes2.add("Zacarias");

// vamos adicionar os elementos da segunda lista
// a partir do segundo elemento da primeira lista
nomes.addAll(1, nomes2);

// vamos exibir o resultado
for(int i = 0; i < nomes.size(); i++){
System.out.println(nomes.get(i));
}

System.exit(0);
}
}


Como resultado da execução deste código nós teremos:

Carlos
Osmar
Zacarias
Maria
Fernanda


URL: http://www.arquivodecodigos.net/dicas/2772

Arrays ou ArrayList? Qual devo usar?

Uma das perguntas mais frequentes é aquela sobre o uso de simples arrays ou ArrayList. Se o número de elementos for fixo ou você precisar de muita eficiência ao lidar com tipos primitivos, então arrays podem ser a melhor escolha.

Porém, muitos problemas envolvendo o armazenamento de dados requerem estruturas de dados que possam ser redimensionadas de acordo com a necessidade do algorítmo. Neste caso, uma ArrayList (ou qualquer uma das outras classes Collections) pode ser a escolha certa.

URL: http://www.arquivodecodigos.net/dicas/763

Como adicionar ou subtrair minutos de uma data e hora usando o método add() da classe Calendar

Este trecho de código mostra como usar o método add() da classe Calendar para adicionar ou subtrair minutos de uma data e hora. Veja que este método requer o campo de calendário e um número inteiro. Para o nosso propósito, o campo de calendário será Calendar.MINUTE. Um valor positivo adiciona dias enquanto um valor negativo subtrai:

import java.util.*;
import java.text.*;

public class Estudos{
public static void main(String args[]){
Calendar agora = Calendar.getInstance();

// formata e exibe a data e hora atual
Format formato = new SimpleDateFormat(
"dd/MM/yyyy - HH:mm:ss");
System.out.println("Hoje é: " +
formato.format(agora.getTime()));

// vamos adicionar 60 minutos a esta data
agora.add(Calendar.MINUTE, 60);

// formata e exibe o resultado
formato = new SimpleDateFormat(
"dd/MM/yyyy - HH:mm:ss");
System.out.println("Daqui a 60 minutos será: " +
formato.format(agora.getTime()));
}
}

URL: http://www.arquivodecodigos.net/dicas/2440

Criando uma ArrayList genérica de inteiros

import java.util.ArrayList;

public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá inteiros
ArrayList valores = new ArrayList();

// adiciona itens na lista
valores.add(34);
valores.add(12);
valores.add(8);
valores.add(23);

// exibe os valores da lista
for(int i = 0; i < valores.size(); i++)
System.out.println(valores.get(i));

System.exit(0);
}
}

URL: http://www.arquivodecodigos.net/dicas/761

A instrução switch do Java

Quando precisamos escolher entre múltiplos caminhos alternativos e esta escolha pode ser baseada em um valor inteiro, a instrução switch é uma boa opção. Veja seu uso:

public class Estudos{
public static void main(String[] args){
int valor = 4;

switch(valor){
case 1:
System.out.println("Valor é 1");
break;
case 2:
System.out.println("Valor é 2");
break;
case 3:
System.out.println("Valor é 3");
break;
default:
System.out.println("Valor diferente de 1, 2 e 3");
break;
}
}
}

A variável fornecida à instrução switch deve ser do tipo byte, short, char, ou int. Ela não pode ser long, float, double, boolean ou referência a objetos. Veja o que acontece quando tentamos usar uma variável do tipo long:

Estudos.java:5: possible loss of precision
found : long
required: int
switch(valor){
^
1 error

URL: http://www.arquivodecodigos.net/dicas/1233

segunda-feira, 17 de janeiro de 2011

Bem vindo ao Cabeça Java