[RESOLVIDO] Loteria 2.0

Olá galera, há uns dias eu criei o seguinte tópico sobre loteria: http://www.guj.com.br/java/247907-resolvido-loteria
foi resolvido a dúvida, mas acabou de surgir outra dúvida, é o seguinte

com base no código

public static void main(String[] args) throws Exception {  
        sortear(new Integer[]{1,2,3,4,5}, 2,3);  
    }  
  
    public static void sortear(Integer [] arrayNumbers, Integer ... arrayExceptions) {  
        ArrayList<Integer> listNumbers = new ArrayList<Integer>();  
        listNumbers.addAll(Arrays.asList(arrayNumbers));  
        ArrayList<Integer> listExceptions = new ArrayList<Integer>();  
        listExceptions.addAll(Arrays.asList(arrayExceptions));  
        listNumbers.removeAll(listExceptions);  
        Random r = new Random();  
        while (!listNumbers.isEmpty()) {  
            int index = r.nextInt(listNumbers.size());  
            System.out.println(listNumbers.remove(index));  
        }  
    }

eu adicionei alguns valores, e ficou assim:

public static void main(String[] args) throws Exception {
     int[] valores = new int[10];  
     int[] valoresX = new int[10];  
     int i;  
     Scanner input = new Scanner(System.in);  
     for(i = 0; i < 10;i++){  
     System.out.println("Informe os Numeros: ");  
     valores[i] = input.nextInt();  
     }  
       
     for(i = 0; i < 4;i++){  
     System.out.println("Informe os Numeros que serão excluidos(digite zero pra sair): ");  
     valoresX[i] = input.nextInt();  
     }  
       
     sortear(new Integer[]{valores[i]},valoresX[i]);
    }
    public static void sortear(Integer [] arrayNumbers, Integer ... arrayExceptions) {  
        ArrayList<Integer> listNumbers = new ArrayList<Integer>();  
        listNumbers.addAll(Arrays.asList(arrayNumbers));  
        ArrayList<Integer> listExceptions = new ArrayList<Integer>();  
        listExceptions.addAll(Arrays.asList(arrayExceptions));  
        listNumbers.removeAll(listExceptions);  
        Random r = new Random();  
        while (!listNumbers.isEmpty()) {  
            int index = r.nextInt(listNumbers.size());  
            System.out.println(listNumbers.remove(index));  
        }  
    }

nessa linha que tenho a duvida, quando faço desta maneira não dá certo

sortear(new Integer[]{valores[i]},valoresX[i]);

mas quando faço assim, sorteia sem problemas

sortear(new Integer[]{valores[0],valores[1],valores[2],valores[3],valores[4]...},valoresX[0],valoresX[1],valoresX[2]...);

acho que precisaria de tipo um For ali dentro, mas não faço idéia de como solucionar este problema, alguém dá um help ai por favor

Att.
Romário

pq não passar o array inteiro ??

    sortear(valoresX);  

[quote=Polverini]pq não passar o array inteiro ??

sortear(valoresX); [/quote]

Deu o seguinte erro:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	The method sortear(Integer[], Integer...) in the type main is not applicable for the arguments (Integer[], int[])
	Type mismatch: cannot convert from int[] to Integer

Boa noite,

Esse erro é porque você tem um array primitivo int, e o método recebe valores Integer, eu mexi um pouco no seu main e ficou da seguinte forma:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class Loteria {

	public static void main(String[] args) throws Exception {

	     int qtdNumerosSorteio = 0;
	     int qtdNumerosExclusao = 0;
	     Scanner input = new Scanner(System.in);

	     System.out.println("Digite a quantidade de números que serão sorteados: ");
	     qtdNumerosSorteio = input.nextInt();

	     Integer[] numerosSorteio = new Integer[qtdNumerosSorteio];

	     for(int i = 0; i < qtdNumerosSorteio; i++) {
		     System.out.println("Informe os Numeros: ");
		     numerosSorteio[i] = input.nextInt();
	     }

	     System.out.println("Quantos números deseja excluir? ");
	     qtdNumerosExclusao = input.nextInt();

	     Integer[] numerosExclusao = new Integer[qtdNumerosExclusao];

	     for(int i = 0; i < qtdNumerosExclusao; i++) {
		     System.out.println("Informe os Numeros que serão excluidos: ");
		     numerosExclusao[i] = input.nextInt();
	     }

	     sortear(numerosSorteio, numerosExclusao);
    }

    public static void sortear(Integer [] arrayNumbers, Integer ... arrayExceptions) {
        ArrayList<Integer> listNumbers = new ArrayList<Integer>();
        listNumbers.addAll(Arrays.asList(arrayNumbers));
        ArrayList<Integer> listExceptions = new ArrayList<Integer>();
        listExceptions.addAll(Arrays.asList(arrayExceptions));
        listNumbers.removeAll(listExceptions);
        Random r = new Random();
        while (!listNumbers.isEmpty()) {
            int index = r.nextInt(listNumbers.size());
            System.out.println(listNumbers.remove(index));
        }
    }
}

Funciona perfeitamente e acho que resolve o seu problema !

Falo !

[quote=RodrigoM91]Boa noite,

Esse erro é porque você tem um array primitivo int, e o método recebe valores Integer, eu mexi um pouco no seu main e ficou da seguinte forma:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class Loteria {

	public static void main(String[] args) throws Exception {

	     int qtdNumerosSorteio = 0;
	     int qtdNumerosExclusao = 0;
	     Scanner input = new Scanner(System.in);

	     System.out.println("Digite a quantidade de números que serão sorteados: ");
	     qtdNumerosSorteio = input.nextInt();

	     Integer[] numerosSorteio = new Integer[qtdNumerosSorteio];

	     for(int i = 0; i < qtdNumerosSorteio; i++) {
		     System.out.println("Informe os Numeros: ");
		     numerosSorteio[i] = input.nextInt();
	     }

	     System.out.println("Quantos números deseja excluir? ");
	     qtdNumerosExclusao = input.nextInt();

	     Integer[] numerosExclusao = new Integer[qtdNumerosExclusao];

	     for(int i = 0; i < qtdNumerosExclusao; i++) {
		     System.out.println("Informe os Numeros que serão excluidos: ");
		     numerosExclusao[i] = input.nextInt();
	     }

	     sortear(numerosSorteio, numerosExclusao);
    }

    public static void sortear(Integer [] arrayNumbers, Integer ... arrayExceptions) {
        ArrayList<Integer> listNumbers = new ArrayList<Integer>();
        listNumbers.addAll(Arrays.asList(arrayNumbers));
        ArrayList<Integer> listExceptions = new ArrayList<Integer>();
        listExceptions.addAll(Arrays.asList(arrayExceptions));
        listNumbers.removeAll(listExceptions);
        Random r = new Random();
        while (!listNumbers.isEmpty()) {
            int index = r.nextInt(listNumbers.size());
            System.out.println(listNumbers.remove(index));
        }
    }
}

Funciona perfeitamente e acho que resolve o seu problema !

Falo ![/quote]

Perfeito brother!!
vlw pela ajuda :slight_smile: