O “generics” é um acréscimo à sintaxe do Java cujo objetivo é reduzir um pouco a quantidade de casts quando se usam coleções. (Ele também serve para outras coisas, mas isso veio “de contrabando”.)
Por exemplo, quando se quer usar uma lista de objetos, normalmente não é uma lista de qualquer objeto (que é o caso do java.util.List); é uma lista que deveria conter apenas Strings, ou objetos da classe DadosCliente, ou alguma outra coisa.
No seu caso parece que é uma lista que deveria conter apenas Strings. Nesse caso você usaria um List < String > em vez de um List sem nada.
Então em vez de declarar List lista = new ArrayList(), você declararia List < String > lista = new ArrayList < String > ().
A vantagem você vê quando vai acessar um elemento dessa lista. Em vez de escrever:
String umElemento = (String) lista.get (1);
você usa simplesmente:
String umElemento = lista.get (1);
que ele sabe que você prometeu (a declaração é um tipo de “promessa”) que só vai pôr String dentro da lista. Só que internamente ele continua fazendo o cast do mesmo jeito. É só para facilitar o jeito de escrever, e fazer com que o compilador possa achar alguns erros de lógica no seu programa.
import java.util.*;
class TestLista {
//////
boolean addp = true;
private int casa =0;
private int numero;
private int x=0;
// A declaração original...
// private List lista = new ArrayList();
// Aqui estou supondo que você quer ter uma lista de Strings.
private List < String > lista = new ArrayList < String > ();
public void addfig(){
while (x < 4) {
casa++;
if(addp == true) {
addp = false;
lista.add(x, Integer.toString(casa));
} else {
addp = true;
int casaigual=casa-1;
lista.add(x, Integer.toString(casaigual));
}
x++;
}
}
}