[RESOLVIDO] Cronometrando inserção de dados em List

Boa noite pessoal. Eu criei o seguinte código:

package searchtrintamil;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class SearchTrintaMil {
    public static void main(String[] args) {
     
     Random randomNumber = new Random();
     int num;
     final int N = 3000;
     List<Integer> array = new ArrayList<Integer>();
     long inicio = System.currentTimeMillis();
     for(int i = 0; i < N; i++)
     {
    	 num = 1 + randomNumber.nextInt(3000);
    	 array.add(num);
    	 System.out.println(num + " - " + array.contains(i));
    	 //System.out.println("" + array.get(i));
     }
     
     long termino = System.currentTimeMillis();
     long intervalo = termino - inicio;
    
      System.out.println("Tempo de execução: "
    	  + intervalo + " milisegundos.");
    
    }
   }

E gostaria de saber porque alguns valores não são inseridos na List, já que tenho vários retornos “false” referentes ao método contains quando executo o programa. Muito obrigado.

Se o contains disser q é “false” é pq o elemento não está no array. Isso não quer dizer q ele não foi inserido. A princípio deveria ser mais comum que apareça mais “false” do que true… Se aparecer mt true é pq o random tá gerando mts números repetidos…

O fato é que não é possível inserir valores repetidos num HashSet né? mas num ArrayList é possível, não é mesmo? eu modifiquei a classe de HashSet para ArrayList e continuo tendo retorno “false” para a inserção de vários valores (não era para todos os valores serem inseridos? já que agora passei a manipular uma ArrayList ?)

Sim, no HashSet não pode inserir valores repetidos… ArrayList pode…

Agora q eu vi um furo no seu código… Vc tá passando o “i” pro contains… Passe o “num”

como nosso amigo disse anteriormente, os valores estão sendo inseridos, o problema é que vc está buscando i ao invés de num.

tente alterar a linha 18 do código acima para

System.out.println(num + " - " + array.contains(num));

e terá vários true. Caso queira saber os valores que estão na lista é só chamar o método toString() dela.

[]'s

[quote=khadi]como nosso amigo disse anteriormente, os valores estão sendo inseridos, o problema é que vc está buscando i ao invés de num.
[/quote]

Ops, que mancada! não tinha percebido que tinha colocado i ao invés de num :oops: Obrigado gente!