Advertisement
warrior98

Untitled

Nov 6th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.57 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.*;
  4.  
  5. import com.company.Multime;
  6.  
  7. public class Main {
  8.     public static int MOD = 666013;
  9.     public static void insertInHash(ArrayList<Integer>[] hash, int numar) {
  10.         int rest = numar % MOD;
  11.  
  12.         if (findInHash(hash, numar) == -1)
  13.             hash[rest].add(numar);
  14.     }
  15.  
  16.     public static int findInHash(ArrayList<Integer>[] hash, int numar) {
  17.         int rest = numar % MOD;
  18.  
  19.         for (int i = 0; i < hash[rest].size(); ++i) {
  20.             if (hash[rest].get(i) == numar)
  21.                 return i;
  22.         }
  23.  
  24.         return -1;
  25.     }
  26.  
  27.     public static ArrayList<Integer> findIntersection(ArrayList<Integer>[] hashA, ArrayList<Integer>[] hashB) {
  28.         ArrayList<Integer> ans = new ArrayList<>();
  29.  
  30.         for (int i = 0; i < MOD; ++i) {
  31.             for (int j = 0; j < hashA[i].size(); ++j) {
  32.                 if (findInHash(hashB, hashA[i].get(j)) != -1)
  33.                     ans.add(hashA[i].get(j));
  34.             }
  35.         }
  36.  
  37.         return ans;
  38.     }
  39.  
  40.  
  41.  
  42.     public static void main(String[] args) {
  43. //        Multime a = new Multime();
  44. //        Multime b = new Multime();
  45.  
  46.         ArrayList<Integer>[] hashA = new ArrayList[MOD];
  47.         ArrayList<Integer>[] hashB = new ArrayList[MOD];
  48.  
  49.         for(int i = 0; i < MOD; i++) {
  50.             hashA[i] = new ArrayList<Integer>();
  51.             hashB[i] = new ArrayList<Integer>();
  52.         }
  53.  
  54.         int option;
  55.         Scanner sc = new Scanner(System.in); // Declararea scannerului pentru citirea de la tastatura
  56.  
  57.         do {
  58.             // Afisarile pentru optiuni
  59.             System.out.println("Ce optiune doriti sa alegeti?\n");
  60.             System.out.println("0. Iesire\n");
  61.             System.out.println("1. Setati Multimea A\n");
  62.             System.out.println("2. Setati Multimea B\n");
  63.             System.out.println("3. Aflati intersectia dintre A si B");
  64.  
  65.             option = sc.nextInt(); // Citirea optiunii alese
  66.  
  67.             if (option == 1) {
  68.                 System.out.println("Cate elemente doriti sa introduceti?\n");
  69.                 int n = sc.nextInt(); // Se citeste numarul de elemente din noul sir
  70.  
  71.                 ArrayList<Integer> A = new ArrayList<Integer>();
  72.                 for (int i = 0; i < n; ++i) {
  73.                     int val = sc.nextInt(); // citirea fiecarui element
  74. //                    A.add(val); // inserarea in lista A
  75.                     insertInHash(hashA, val);
  76.                 }
  77.  
  78. //                a = new Multime(A); // creearea multimii a din lista A
  79.             } else if (option == 2) {
  80.                 System.out.println("Cate elemente doriti sa introduceti?\n");
  81.                 int n = sc.nextInt(); // Se citeste numarul de elemente din noul sir
  82.  
  83.                 ArrayList<Integer> B = new ArrayList<Integer>();
  84.                 for (int i = 0; i < n; ++i) {
  85.                     int val = sc.nextInt();  // citirea fiecarui element
  86. //                    B.add(val); // inserarea in lista B
  87.                     insertInHash(hashB, val);
  88.                 }
  89.  
  90. //                b = new Multime(B);// creearea multimii b din lista B
  91.             } else if (option == 3) {
  92.                 // Se insereaza intr-un ArrayList rezultatul intersectiei dintre a si b
  93. //                ArrayList<Integer> rezultat = new ArrayList<Integer>(a.intersectie(b));
  94.  
  95.                 ArrayList<Integer> rezultat = findIntersection(hashA, hashB);
  96.                 System.out.println(rezultat); // Se afiseaza rezultatul
  97.             }
  98.         } while (option != 0); // Cand optiunea e 0, programul se opreste
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement