Giter Site home page Giter Site logo

roseliciasnovo's Introduction

Interface Collection - SET

SET é uma interface que faz parte do pacote “java.util” e representa grupos de elementos que são usados quando o programador não precisar ter nenhum dado duplicado na coleção

LIS e SET são a mesma coisa?

Não. Apesar de ambos armazenarem uma “lista”. A diferença principal é que o 'Set' não aceita elementos duplicados, diferente do List.

Características - Collection Set

  • Velocidade na pesquisa de dados, sendo mais rápida que um objeto do tipo List;

  • Permite trabalhar com conjuntos e pode ser implementado como instâncias das classes HashSet ou TreeSet;

  • Não precisa especificar a posição para adicionar um elemento;

  • Não aceita valores duplicados. Se caso inserir um registro que já tenha no Set não será adicionado.

  • Podem ser implementados como instâncias das classes HashSet ou TreeSet;

Características da Implementações: HashSet, TreeSet e LinkedHashSet

HashSet

Com o HashSet o acesso aos dados é mais rápido que em um TreeSet, porem não os dados estarão ordenados. Escolha este conjunto quando a solução exigir elementos únicos e a ordem não for importante.

  • Não tem ordenação na varredura ou impressão. A ordem de saída não é a mesma de entrada;

  • Aceitam valores do tipo null

  • Não é sincronizada (thread-safe);

  • Velocidade no acesso, leitura e modificação de dados;

TreeSet

No TreeSet os dados são classificados, mas o acesso é mais lento que em um HashSet. Se a necessidade for um conjunto com elementos não duplicados e acesso em ordem natural, prefira o TreeSet. É recomendado utilizar esta coleção para as mesmas aplicações de HashSet, com a vantagem dos objetos estarem em ordem natural;

  • Os elementos inseridos dentro desse tipo de conjunto devem implementar a interface Comparable;

  • A ordenação é por elementos únicos;

  • Não suporta objetos nulos, se caso um elemento ser nulo é lançado a exceção NullPointerException;

LinkedHashSet

LinkedHashSet é derivada de HashSet, mas mantém uma lista duplamente ligada através de seus itens. Seus elementos são iterados na ordem em que foram inseridos. Opcionalmente é possível criar um LinkedHashSet que seja percorrido na ordem em que os elementos foram acessados na última iteração. Poderíamos usar esta implementação para registrar a chegada dos corredores de uma maratona;

  • Boa performance

  • Pode ser ordenada.

  • Elementos continuam na ordem que são inserido

    Sintaxe e exemplos HashSet e TreeSet; - Set

HashSet:

Sintaxe: HashSet set = new Type();

TreeSet:

Sintaxe: Set set = new TreeSet();

TreeSet:

Sintaxe: LinkedHashSet sequenciaNumerica = new LinkedHashSet<>();

Exemplo uso HashSet

import Component from 'my-project'

import java.util.HashSet;
import java.util.Iterator;
 
public class TestesHashSet {
 
    public static void main(String[] args) {
        HashSet<Cliente> hsc = new HashSet<Cliente>();
        hsc.add(new Cliente("João Delfino","Rua da Várzea","3232-1232"));
        hsc.add(new Cliente("Maria Tijuca","Av. Brasil","8569-99988"));
        hsc.add(new Cliente("Pedro de Lara","Rua 20 de março","7568-8524"));
         
        Cliente clienteJoao = new Cliente("João Delfino","Rua da Várzea","3232-1232");
        if(hsc.contains(clienteJoao)){
            System.out.println("Existe o cliente João Delfino");
        }
         
        System.out.println("Tamanho coleção HashSet: "+hsc.size());
         
        //Percorrendo o HashSet<Cliente> e imprimindo os valores
        Iterator<Cliente> it = hsc.iterator();
        while(it.hasNext()){
            Cliente valorCliente = (Cliente)it.next();
            System.out.println(valorCliente);
        }
    }
}

Exemplo uso TreeSet

import Component from 'my-project'

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
 
public class TesteTreeSet {
    public static void main(String[] args) {
        Set<Cliente> hsc = new HashSet<Cliente>();
        hsc.add(new Cliente("Pedro de Lara","Rua 20 de março","7568-8524"));
        hsc.add(new Cliente("João Delfino","Rua da Várzea","3232-1232"));
        hsc.add(new Cliente("Maria Tijuca","Av. Brasil","8569-99988"));
 
         
        Set<Cliente> ordena = new TreeSet<Cliente>(hsc);
        Iterator<Cliente> it = ordena.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
         
    }
}

Exemplo uso LinkedHashSet

import Component from 'my-project'
 import java.util.LinkedHashSet;
public class AddElementsLinkedHashSet {
  public static void main(String[] args) {
    LinkedHashSet<Integer> lh = new LinkedHashSet<Integer>();
    lh.add(20);
    lh.add(30);
    lh.add(10);
    lh.add(50);
    lh.add(40);
    
    System.out.println("Elements in the Set after add method: " + lh);
    
    LinkedHashSet<Integer> l = new LinkedHashSet<Integer>();
    l.add(60);
    l.add(80);
    
    lh.addAll(l);
    System.out.println("Elements in the Set after addAll method: " + lh);
  }
}
Elements in the Set after add method: [20, 30, 10, 50, 40]
Elements in the Set after addAll method: [20, 30, 10, 50, 40, 60, 80]

Referências

Referencias para elaboração do trabalho

Site: linhadecodigo - interface Set Java

Site: Devmedia - Como utilizar collections Java

roseliciasnovo's People

Contributors

sanchesthiago avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.