Agora no outro metodo vou chama-lo 4 vezes para gerar um numero randomico e retirar o numero da list a cada chamada, isso pra nao gerar um randomico repetido.
[code]
private String saiNumero;
String randomico(){
int t_casa=lista.size()-1;
numero=r.nextInt(t_casa);
lista.remove(numero);
saiNumero = (String)lista.get(numero);
return saiNumero;
}[/code]
ao compilar dar isso:
F:\Meus documentos\java>javac -Xlint:unchecked jogo/jogo/corpo.java
jogo/jogo/corpo.java:41: warning: [unchecked] unchecked call to add(int,E) as a
member of the raw type java.util.List
lista.add(x, Integer.toString(casa));
^
jogo/jogo/corpo.java:45: warning: [unchecked] unchecked call to add(int,E) as a
member of the raw type java.util.List
lista.add(x, Integer.toString(casaigual));
^
2 warnings
import java.util.*;
/**
*
* @author Usuario
*/
public class TesteGuj {
private int casa = 0;
private int numero;
private int x = 0;
boolean addp = true;
private String saiNumero;
private ArrayList<String> lista = new ArrayList<String>();
/** Creates a new instance of TesteGuj */
public TesteGuj() {
}
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++;
}
}
String randomico(){
Random r = new Random(System.currentTimeMillis());
int t_casa = lista.size();
numero = r.nextInt(t_casa);
lista.remove(numero);
saiNumero = (String)lista.get(numero);
return saiNumero;
}
}
Repare que não é necessário fazer:
int t_casa = lista.size() - 1;
Pois quando você manda gerar o inteiro aleatório já é gerado sempre com um número a menos do que você mandou. Por exemplo:
numero = r.nextInt(10);
Irá gerar números aleatórios com o seguinte intervalo: 0 <= numero <= 9.
Olá Lelis, primeiramente agradeço a ajuda. Porem ao tentar compilar, dar 2 warnings.
F:\Meus documentos\java>javac face/teste.java
Note: face/teste.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
F:\Meus documentos\java>javac -Xlint:unchecked face/teste.java
face/teste.java:24: warning: [unchecked] unchecked call to add(int,E) as a membe
r of the raw type java.util.ArrayList
lista.add(x, Integer.toString(casa));
^
face/teste.java:28: warning: [unchecked] unchecked call to add(int,E) as a membe
r of the raw type java.util.ArrayList
lista.add(x, Integer.toString(casaigual));
^
2 warnings
Eu estava obtendo esses warnings quando não estava usando templates, depois que passei a fazer:
private ArrayList<String> lista = new ArrayList<String>();
Os warnings não apareceram mais. Certifique-se que você está fazendo exatamente como acima.
Sobre o ArrayList e List: List é uma interface e o ArrayList implementa ela, então tanto faz, você pode fazer dos dois jeitos. Mas observe o detalhe:
List m = new ArrayList();
m = new Vector(); //correto!
ArrayList a = new ArrayList();
a = new Vector(); //errado!
A segunda opção tá errada pois são tipos diferentes. E no seu código eu mudei por hábito mesmo, acho que fica mais claro, já que só usamos ArrayList();
Deve existir situações mais interessantes de exemplo, por favor, quem puder complementar…