Já sabemos que a interface Set não aceita
valores duplicados, bem diferente de List
que permite que seus elementos sejam repetidos.
Nada melhor do que mostrar isto na prática.
Na primeira lista de um ArrayList inserimos
100 números entre 0 e 100 gerados pelo método
Math.random ( ), onde naturalmente vieram
muitos números repetidos, isto é mostrado
na primeira tela do primeiro stage do javafx.
Criei uma nova classe e adicionei um novo stage,
e este novo stage recebeu como parâmetros o
ArrayList criado no primeiro stage da classe
principal PROJETO, e em seguida declaramos
a interface Set recebendo o ArrayList recebido
para a remoção dos elementos repetidos,
fazendo também a ordenação destes elementos
automaticamente.
Para finalizar criei uma nova lista para receber
os elementos do hashset, que poderia ser imprimido
diretamente, mas por questões de organização da
impressão na tela escolhi esta opção.
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
valores duplicados, bem diferente de List
que permite que seus elementos sejam repetidos.
Nada melhor do que mostrar isto na prática.
Na primeira lista de um ArrayList inserimos
100 números entre 0 e 100 gerados pelo método
Math.random ( ), onde naturalmente vieram
muitos números repetidos, isto é mostrado
na primeira tela do primeiro stage do javafx.
Criei uma nova classe e adicionei um novo stage,
e este novo stage recebeu como parâmetros o
ArrayList criado no primeiro stage da classe
principal PROJETO, e em seguida declaramos
a interface Set recebendo o ArrayList recebido
para a remoção dos elementos repetidos,
fazendo também a ordenação destes elementos
automaticamente.
Para finalizar criei uma nova lista para receber
os elementos do hashset, que poderia ser imprimido
diretamente, mas por questões de organização da
impressão na tela escolhi esta opção.
Veja abaixo imagens do programa em execução:
Veja abaixo o código do programa:
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javafx.application.Application;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Button;
import javafx.stage.Stage;
import javafx.scene.paint.Color;
import javafx.scene.input.KeyCode;
import javafx.scene.layout.Pane;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
class Newclass {
static Canvas canvas = new Canvas ( 620, 350 );
static GraphicsContext ctx = canvas.getGraphicsContext2D ( );
static Pane ro_ot = new Pane ( );
static Scene sce_ne = new Scene ( ro_ot, 620, 350 );
public void Informe ( ) {
ctx.setFill ( Color.RED );
ctx.fillText ( "Por: ", 200, 242 );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Samuel
Lima", 260, 242 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( "sa_sp10@hotmail.com", 200, 260 );
ctx.setFill ( Color.RED );
ctx.fillText ( " MUITO
OBRIGADO", 240, 290 );
}
static Button btn_1 = new Button ( "Sair" );
public static Node But_ton_2 ( Stage stage ) {
btn_1.setPrefWidth ( 80 );// Largura do botão
btn_1.setLayoutX ( 267 );// Posição do botão
coluna
btn_1.setPrefHeight ( 20 );// altura do botão
btn_1.setLayoutY ( 300 );// //Posição do botão
linha
btn_1.setStyle ( "-fx-padding:
1;" + "-fx-border-style: solid
inside;"
+ "-fx-border-width: 2;" + "-fx-border-insets:
1;"
+ "-fx-border-radius: 1;" + "-fx-border-color:
blue;"
+ "-fx-font-style: italic;"
+ "-fx-font-family: Consolas;"
);
btn_1.setOnKeyPressed ( e -> {
if ( e.getCode ( ) == KeyCode.ENTER ) {
System.exit ( 0 );
}
} );
return btn_1;
}
public void start ( Stage stage, ArrayList < Integer > arr ) {
int i;
String str1 = " ";
stage.setTitle ( "HASHSET -
REMOVENDO VALORES REPETIDOS" );
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "HASHSET -
REMOVENDO VALORES REPETIDOS", 140, 50 );
// Criando moldura e dando efeitos
ro_ot.setStyle ( "-fx-padding:
5;" + "-fx-border-style: solid inside;"
+ "-fx-border-width: 18;" + "-fx-border-insets:
5;"
+ "-fx-border-radius: 5;" + "-fx-border-color:
blue;" );
But_ton_2 ( stage );
Informe ( );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Lista
ordenada e sem os elementos repetidos ", 170, 80 );
// Fazendo a conversão de ArrayList para
HashSet
// Set ordena e remove todos os elementos
repetidos
Set < Integer > Hash_Set = new HashSet < > ( arr );
// Criando uma lista
com os elementos do HashSet
List < Integer > list = new ArrayList < Integer > ( Hash_Set );
// Percorrendo cada
elemento da lista e imprimindo
for ( i = 0; i < list.size ( ); i++ ) {
if ( i % 10 == 0 ) {
str1 += "\n";
}
if ( list.get ( i ) >= 0 && list.get ( i ) <= 9 ){
str1 += "0";
}
str1 += list.get ( i ) + " ";
}
ctx.setFill ( Color.BLACK );
ctx.fillText ( str1, 180, 100 );
stage.setScene ( sce_ne );
ro_ot.getChildren ( ).addAll ( canvas, btn_1 );
stage.show ( );
}
}
////////////////////////////////////////////////////////////////////////////////
public class PROJETO extends Application {
//public static int TAM = 100;
static Canvas canvas = new Canvas ( 620, 350 );
static GraphicsContext ctx = canvas.getGraphicsContext2D
( );
static Pane ro_ot = new Pane ( );
static Scene sce_ne = new Scene ( ro_ot, 620, 350 );
static Button btn_1 = new Button ( "ENTER" );
static Newclass nova = new Newclass ( );
//
////////////////////////////////////////////////////////////////////////
public static Node But_ton_3 ( Stage stage, ArrayList < Integer > arr ) {
btn_1.setPrefWidth ( 80 );// Largura do botão
btn_1.setLayoutX ( 267 );// Posição do botão
coluna
btn_1.setPrefHeight ( 20 );// altura do botão
btn_1.setLayoutY ( 300 );// //Posição do botão
linha
btn_1.setStyle ( "-fx-padding:
1;" + "-fx-border-style: solid inside;"
+ "-fx-border-width:
2;" + "-fx-border-insets: 1;"
+ "-fx-border-radius:
1;" + "-fx-border-color: blue;"
+ "-fx-font-style:
italic;"
+ "-fx-font-family:
Consolas;"
);
btn_1.setOnKeyPressed ( e -> {
if ( e.getCode ( ) == KeyCode.ENTER ) {
nova.start ( stage, arr );
}
} );
return btn_1;
}
//
////////////////////////////////////////////////////////////////////////
public void start ( Stage stage ) {
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
stage.setTitle ( "HASHSET -
REMOVENDO VALORES REPETIDOS" );
// Criando moldura e dando efeitos
ro_ot.setStyle ( "-fx-padding:
5;" + "-fx-border-style: solid inside;"
+ "-fx-border-width:
18;" + "-fx-border-insets: 5;"
+ "-fx-border-radius:
5;" + "-fx-border-color: grey;" );
ctx.setFill ( Color.RED );
ctx.fillText ( "HASHSET -
REMOVENDO VALORES REPETIDOS", 140, 50 );
// Declarando ArrayList com valor pré-determinado
ArrayList < Integer > arr = new ArrayList < > ( 100 );
int i;
String str = " ";
ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "ArrayList com
todos os elementos gerados", 170, 80 );
ctx.setFont ( Font.font ( "Arial", FontWeight.BOLD, 14 ) );
// Preenchendo o ArrayList com laço for
for ( i = 1; i < 101; i++ ) {
arr.add ( ( int ) ( Math.random ( ) * 100 ) );
}
for ( i = 0; i < arr.size ( ); i++ ) {
if ( i % 10 == 0 ) {
str += "\n";
}
if ( arr.get ( i ) >= 0 && arr.get ( i ) <= 9 ){
str += "0";
}
str += arr.get ( i ) + " ";
}
ctx.setFill ( Color.MAGENTA );
ctx.fillText ( str, 180, 100 );
But_ton_3 ( stage, arr );
ro_ot.getChildren ( ).addAll ( canvas, btn_1 );
stage.setScene ( sce_ne );
stage.show ( );
}
//
/////////////////////////////////////////////////////////////////////////
public static void main ( String [ ] args ) {
Application.launch ( args );
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.