Advertisement
Guest User

Practica1

a guest
Sep 20th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.01 KB | None | 0 0
  1. package Practica1;
  2.  
  3. import java.util.Collection;
  4. import java.util.HashSet;
  5. import java.util.Iterator;
  6. import java.util.Set;
  7.  
  8. public class practica1 {
  9.  
  10.     public static void main(String[] args) {
  11.     }
  12.  
  13.     /**
  14.      *  Método que toma dos conjuntos de enteros y separa los elementos entre aquellos que sólo aparecen una vez
  15.      *  y aquellos que aparecen repetidos. El método modifica los conjuntos que toma como parámetros.
  16.      * @param unicos    A la entrada un conjunto de enteros. A la sálida los elementos que solo aparecen en uno de
  17.      *                  los conjuntos.
  18.      * @param repetidos A la entrada un conjunto de enteros. A la salida los elementos que aparecen en ambos conjuntos.
  19.      */
  20.     static public void separa(Set<String> unicos, Set<String> repetidos) {
  21.         Set<String> v1 = new HashSet<>();
  22.         v1.addAll(unicos);
  23.         unicos.addAll(repetidos);
  24.         repetidos.retainAll(v1);
  25.         unicos.removeAll(repetidos);
  26.  
  27.     }
  28.  
  29.     /**
  30.      *  Toma un iterador a una colección de enteros positivos y devuelve como resultado un conjunto con aquellos elementos
  31.      *  de la colección que no son múltiplos de algún otro de la colección. Los ceros son descartados
  32.      * @param iter  Iterador a una colección de enteros
  33.      * @return Conjunto de de enteros.
  34.      */
  35.     static public Set <Integer> filtra(Iterator<Integer> iter) {
  36.         Set<Integer> v1 = new HashSet<>();
  37.         Iterator<Integer> iter2;
  38.         boolean meter = false;
  39.         while (iter.hasNext()){
  40.             int num = iter.next();
  41.  
  42.             if (v1.size() == 0 && num != 0) {
  43.                 v1.add(num);
  44.             } else {
  45.                 iter2 = v1.iterator();
  46.                 while (iter2.hasNext()) {
  47.                     int num2 = iter2.next();
  48.                     if ((num % num2 == 0) || (num2 % num == 0)) {
  49.                         if (num < num2 && num > 0) {
  50.                             meter = true;
  51.                             v1.remove(num2);
  52.                         }
  53.                     }
  54.                 }
  55.                 if (meter) {
  56.                     v1.add(num);
  57.                 }
  58.             }
  59.         }
  60.  
  61.         return v1;
  62.     }
  63.  
  64.     /**
  65.      * Toma una colección de conjuntos de <i>String</i> y devuelve como resultado un conjunto con aquellos <i>String </i>
  66.      * Que aparecen en al menos dos conjuntos de la colección.
  67.      * @param col Coleccion de conjuntos de <i>String</i>
  68.      * @return Conjunto de <i>String</i> repetidos.
  69.      */
  70.     static public Set<String> repetidos(Collection<Set<String>> col) {
  71.         Set<String> aux1 = new HashSet<>();
  72.         Set<String> aux2 = new HashSet<>();
  73.  
  74.         for (Set<String> aCol : col){
  75.             Set<String> colection = new HashSet<>(aCol);
  76.             for (String elem : colection) {
  77.                 if (aux1.contains(elem)) {
  78.                     aux2.add(elem);
  79.                 } else {
  80.                     aux1.add(elem);
  81.                 }
  82.             }
  83.         }
  84.  
  85.         return aux2;
  86.     }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement