Considerando que um arrayList é sem dúvidas
extremamente superior a um array comum,
parece loucura querer convertê-lo para
um array simples.
Más pode ser que você precise disto algum
dia em que estiver programando algo.
Neste exemplo mostro como isto pode ser feito,
onde tudo está baseado na classe integer,
que guarda um valor de tipo primitivo int em um objeto.
Fique claro que esta classe possui outros recursos
más que não fazem parte deste código, por isto
não temos nenhuma necessidade de comentá-lo agora.
Pequena descrição sobre o funcionamento do programa:
Primeiramente o arrayList que foi inicializado com números
primos e não primos entre 0 e 31 , é embaralhado pelo método
shuffle da classe Collections, depois, o mesmo
é convertido para um array simples do tipo int,
e este array é passado como parâmetros para duas funções,
que são, a função imprime(); e a função Insere_Aleat.
Dentro da função Insere_Aleat, temos a declaração
de mais dois arrays de tipo int, estes arrays
recebem a cópia dos números primos e não primos
que são extraído do array principal vet [];
Observe nas imagens que o funcionamento é aleatório,
quando um número é sorteado, ele é imediatamente
copiado no seu array correspondente, onde o critério
de escolha, é pelo fato do mesmo ser ou não ser primo.
Não posso deixar de escrever aqui, que o programa
fará três rodadas, e no término da terceira
ele imprime meu nome, meu e-mail e agradece ao usuário.
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
extremamente superior a um array comum,
parece loucura querer convertê-lo para
um array simples.
Más pode ser que você precise disto algum
dia em que estiver programando algo.
Neste exemplo mostro como isto pode ser feito,
onde tudo está baseado na classe integer,
que guarda um valor de tipo primitivo int em um objeto.
Fique claro que esta classe possui outros recursos
más que não fazem parte deste código, por isto
não temos nenhuma necessidade de comentá-lo agora.
Pequena descrição sobre o funcionamento do programa:
Primeiramente o arrayList que foi inicializado com números
primos e não primos entre 0 e 31 , é embaralhado pelo método
shuffle da classe Collections, depois, o mesmo
é convertido para um array simples do tipo int,
e este array é passado como parâmetros para duas funções,
que são, a função imprime(); e a função Insere_Aleat.
Dentro da função Insere_Aleat, temos a declaração
de mais dois arrays de tipo int, estes arrays
recebem a cópia dos números primos e não primos
que são extraído do array principal vet [];
Observe nas imagens que o funcionamento é aleatório,
quando um número é sorteado, ele é imediatamente
copiado no seu array correspondente, onde o critério
de escolha, é pelo fato do mesmo ser ou não ser primo.
Não posso deixar de escrever aqui, que o programa
fará três rodadas, e no término da terceira
ele imprime meu nome, meu e-mail e agradece ao usuário.
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
import java.util.Random;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
public class PROJETO {
public static int tam = 30;
public static void imprime ( int [ ] vet ) {
J jht = new J ( );
int i;
jht.textcolor ( jht.LIGHTRED );
jht.gotoxy ( ( short ) 24, ( short ) 3 );
System.out.printf ( "ARRAYS ALEATÓRIOS
- PRIMOS E NÃO PRIMOS" );
//
////////////////////////////////////////////
jht.textcolor ( jht.BLACK );
jht.gotoxy ( ( int ) 10, ( int ) 7 );
for ( i = 0; i < 30; i++ ) {
if ( i == 15 )
jht.gotoxy ( ( int ) 10, ( int ) 8 );
if ( i == 30 )
jht.gotoxy ( ( int ) 10, ( int ) 9 );
System.out.print ( " " );
System.out.printf ( "%3d", vet [ i ] );
}
//
////////////////////////////////////////////
}
public static void Insere_Aleat ( int vet [ ] ) {
J jht = new J ( );
int vet_1 [ ] = new int [ tam ];
int vet_2 [ ] = new int [ tam ];
int a = 0, b = 0, c = 0, k = 0, i, z = 0;
int p, t = 0, u = 0, v = 0;
if ( k == tam && z >= 1 )
k = 0;
for ( i = 0; i < tam; i++ ) {
k++;
a = vet [ i ] - 2;
jht.textcolor ( jht.LIGHTBLUE );
jht.textcolor ( jht.LIGHTRED );
jht.gotoxy ( ( short ) 23, ( short ) 10 );
System.out.printf ( "%d°", k );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( " Número
sorteado" );
jht.textcolor ( jht.LIGHTRED );
System.out.printf ( " %d ", vet [ a ] );
if ( k >= 1 && k <= tam ) {
jht.textcolor ( jht.LIGHTRED );
jht.gotoxy ( ( int ) 42, ( int ) 10 );
if ( k >= 1 || k <= tam ) {
for ( b = 1, p = 0; b <= vet [ a ]; b++ ) {
if ( vet [ a ] % b == 0 )
p++;
}
if ( p == 2 ) {
vet_1 [ t ] = vet [ a ];
t++;
u = t;
} else {
vet_2 [ c ] = vet [ a ];
c++;
v = c;
}
}
}
jht.gotoxy ( ( int ) 45, ( int ) 10 );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( " posição" );
jht.textcolor ( jht.LIGHTRED );
System.out.printf ( " %d", a );
jht.textcolor ( jht.LIGHTBLUE );
jht.gotoxy ( ( int ) 23, ( int ) 12 );
System.out.printf ( "O programa
está agora" );
jht.textcolor ( jht.LIGHTRED );
System.out.printf ( " copiando
" );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( "números" );
if ( k == tam ) {
jht.gotoxy ( ( short ) 23, ( short ) 15 );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( "Abaixo os números
primos entre " );
jht.textcolor ( jht.LIGHTRED );
System.out.printf ( "1" );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( " e" );
jht.textcolor ( jht.LIGHTRED );
System.out.printf ( " 30" );
jht.textcolor ( jht.BLACK );
jht.gotoxy ( ( short ) 22, ( short ) 17 );
for ( i = 0; i < u; i++ ) {
System.out.printf ( " %2d ", vet_1 [ i ] );
}
}
if ( k == tam ) {
jht.Apaga ( ( short ) 12, ( short ) 13, ( short ) 22,
( short ) 65 );
jht.gotoxy ( ( short ) 23, ( short ) 12 );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( "O
programa" );
jht.textcolor ( jht.LIGHTRED );
System.out.printf ( " copiou" );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( " com sucesso
" );
jht.gotoxy ( ( short ) 23, ( short ) 19 );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( "Abaixo os números
não primos entre " );
jht.textcolor ( jht.LIGHTRED );
System.out.printf ( "1" );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( " e" );
jht.textcolor ( jht.LIGHTRED );
System.out.printf ( " 30" );
jht.textcolor ( jht.BLACK );
jht.gotoxy ( ( short ) 22, ( short ) 21 );
for ( i = 0; i < v; i++ ) {
if ( i == 11 )
jht.gotoxy ( ( short ) 22, ( short ) 22 );
if ( i == 21 )
jht.gotoxy ( ( short ) 30, ( short ) 22 );
System.out.printf ( " %2d ", vet_2 [ i ] );
}
}
jht.textcolor ( jht.LIGHTRED );
jht.gotoxy ( ( short ) 30, ( short ) 24 );
System.out.printf ( "PRESSIONE
QUALQUER TECLA" );
jht.getche ( );
jht.Apaga ( ( short ) 10, ( short ) 11, ( short ) 54, ( short ) 57 );
if ( k == 30 )
break;
}
jht.Apaga ( ( short ) 12, ( short ) 13, ( short ) 22, ( short ) 65 );
}
public static void main ( String args [ ] ) {
J jht = new J ( );
jht.Moldura ( ( short ) 1, ( short ) 28, ( short ) 2, ( short ) 78 );
jht.title ( " " );
int z = 0, y = 0;
int a = 0, i;
int [ ] vet = new int [ tam ];
ArrayList < String > arrList = new ArrayList <> ( Arrays.asList ( "2",
"3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
"24", "25", "26", "27", "28", "29", "30", "31" ) );
arrList.trimToSize ( );
Collections.shuffle ( arrList );
for ( i = 0; i < arrList.size ( ); i++ ) {
vet [ i ] = Integer.valueOf ( arrList.get ( i ) );
}
do {
jht.cls ( );
jht.gotoxy ( ( short ) 23, ( short ) 12 );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( "Agora o
programa " );
jht.textcolor ( jht.LIGHTRED );
System.out.printf ( "copiará
" );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( "os números" );
jht.gotoxy ( ( short ) 24, ( short ) 13 );
System.out.printf ( "primos e não
primos em dois arrays" );
z++;
jht.textcolor ( jht.LIGHTRED );
jht.gotoxy ( ( short ) 29, ( short ) 5 );
System.out.printf ( "%dª", z + 0 );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( " Rodada
" );
jht.textcolor ( jht.LIGHTRED );
System.out.printf ( "%d ", tam );
jht.textcolor ( jht.LIGHTBLUE );
System.out.printf ( "números
gerados" );
imprime ( vet );
Insere_Aleat ( vet );
y++;
} while ( y < 3 );
jht.Apaga ( ( short ) 24, ( short ) 25, ( short ) 29, ( short ) 65 );
jht.Sleep ( ( short ) 1800 );
jht.textcolor ( jht.LIGHTBLUE );
jht.gotoxy ( ( short ) 23, ( short ) 24 );
System.out.printf ( "Por: " );
jht.textcolor ( jht.LIGHTMAGENTA );
System.out.printf ( "Samuel
Lima" );
jht.textcolor ( jht.BLACK );
jht.gotoxy ( ( short ) 23, ( short ) 25 );
System.out.printf ( "sa_sp10@hotmail.com" );
jht.Sleep ( ( short ) 1800 );
jht.textcolor ( jht.LIGHTRED );
jht.gotoxy ( ( short ) 36, ( short ) 27 );
System.out.printf ( "MUITO
OBRIGADO" );
jht.getche ( );
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.