Advertisement
mrAnderson33

Шестая лаба

Nov 24th, 2017
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.16 KB | None | 0 0
  1. /*Определить класс Set на основе множества целых чисел, n = размер. Создать
  2. методы для определения пересечения и объединения множеств.
  3. Примечание: использовать коллекции JAVA, входные данные
  4. передаются через текстовый файл.*/
  5. /*input*/
  6. [1,2,3,4,5][2,3,4,6]
  7. [1,2,3,4,5]U[2,3,4,6]
  8. [3,5,0,11,12,19]U[2,4,8,12,18,0]
  9. /*SeT.java*/
  10. package com.company;
  11.  
  12. import java.lang.reflect.Array;
  13. import java.util.*;
  14.  
  15. public class SeT {
  16.  
  17.     public SeT() {
  18.         arr = new ArrayList<>(n=0);
  19.     }
  20.  
  21.     public SeT(int [] val)
  22.     {
  23.         arr = new ArrayList<>();
  24.         for (int i = 0; i < (this.n = val.length); ++i)
  25.             this.arr.add(val[i]);
  26.         while (this.haveEqualsElements())
  27.                 this.deleteEqualsElement();
  28.  
  29.         Collections.sort(arr);
  30.         n = arr.size();
  31.     }
  32.  
  33.     public SeT(String val)
  34.     {
  35.         arr = new ArrayList<>();
  36.  
  37.         StringBuffer str = new StringBuffer(val);
  38.         str.deleteCharAt(str.indexOf("["));
  39.         str.deleteCharAt(str.indexOf("]"));
  40.  
  41.  
  42.         for (String x : str.toString().split(",")) {
  43.             arr.add(new Integer(x));
  44.         }
  45.  
  46.         while (this.haveEqualsElements())
  47.             this.deleteEqualsElement();
  48.  
  49.         Collections.sort(arr);
  50.  
  51.         n = arr.size();
  52.  
  53.     }
  54.     public SeT(ArrayList<Integer> arr)
  55.     {
  56.         this.arr = new ArrayList<>(arr);
  57.  
  58.         while (this.haveEqualsElements())
  59.             this.deleteEqualsElement();
  60.  
  61.         Collections.sort(arr);
  62.         n = arr.size();
  63.  
  64.     }
  65.     public  static  SeT intersection(SeT left, SeT right)
  66.     {
  67.         ArrayList<Integer> arr = new ArrayList();
  68.         for (int i = 0; i< left.getN() ; ++i)
  69.             for (int j = 0; j< right.getN() ; ++j)
  70.                 if (Integer.compare(left.ElementAt(i),right.ElementAt(j)) == 0)
  71.                     arr.add(left.ElementAt(i));
  72.         return new SeT(arr);
  73.     }
  74.  
  75.      public  static  SeT union(SeT left, SeT right)
  76.     {
  77.         ArrayList<Integer> arr = new ArrayList();
  78.         arr.addAll(left.getArr());
  79.         arr.addAll(right.getArr());
  80.  
  81.         Collections.sort(arr);
  82.         return new SeT(arr);
  83.     }
  84.  
  85.     public boolean haveEqualsElements()
  86.     {
  87.         for (int i = 0; i < this.arr.size(); ++i)
  88.             for (int j = 0; j < this.arr.size(); ++j)
  89.                 if(i!=j && Integer.compare(this.arr.get(i),this.arr.get(j))==0) return true;
  90.         return false;
  91.     }
  92.  
  93.     public void  deleteEqualsElement()
  94.     {
  95.         for (int i = 0; i < arr.size(); ++i)
  96.             for (int j = 0; j < arr.size(); ++j)
  97.                 if(i!=j && Integer.compare(arr.get(i),arr.get(j))==0)  {
  98.                     arr.remove(i);
  99.                     n--;
  100.                 }
  101.     }
  102.  
  103.     @Override
  104.     public String toString() {
  105.         return  arr.toString();
  106.     }
  107.  
  108.     public ArrayList<Integer> getArr() {
  109.         return arr;
  110.     }
  111.  
  112.     public int ElementAt(int index) {
  113.         return arr.get(index);
  114.     }
  115.  
  116.     public void setArr(int [] arr) {
  117.         this.arr = new ArrayList<>();
  118.         for (int i = 0; i < arr.length; ++i)
  119.             this.arr.add(arr[i]);
  120.     }
  121.  
  122.     public void setArr(ArrayList<Integer> arr) {
  123.         this.arr = arr;
  124.     }
  125.  
  126.     public void setAt(int index, int val) {
  127.         this.arr.add(index,val);
  128.     }
  129.  
  130.     public int getN() {
  131.         return n;
  132.     }
  133.  
  134.     public void setN(int n) {
  135.         this.n = n;
  136.     }
  137.  
  138.     private int n;
  139.     private  ArrayList<Integer> arr;
  140.  
  141.  
  142. }
  143. /Main.java/
  144. package com.company;
  145.  
  146. import java.io.BufferedReader;
  147. import java.io.FileInputStream;
  148. import java.io.IOException;
  149. import java.io.InputStreamReader;
  150.  
  151. public class Main {
  152.  
  153.     public static void main(String[] args) {
  154.  
  155.         try(FileInputStream fin=new FileInputStream("C:\\Users\\Василий\\IdeaProjects\\lab 06\\src\\com\\company\\input"))
  156.         {
  157.             BufferedReader br = new BufferedReader(new InputStreamReader(fin));
  158.             String strLine;
  159.             while ((strLine = br.readLine()) != null){
  160.                  if(strLine.toString().contains("U") || strLine.toString().contains("∩"))
  161.                  {
  162.                      String operation = strLine.toString().contains("∩") ? "∩" : "U";
  163.  
  164.                      String [] temp = strLine.split(operation);
  165.  
  166.                      SeT left = new SeT(temp[0]);
  167.                      SeT right = new SeT(temp[1]);
  168.  
  169.                      SeT res = new SeT();
  170.  
  171.                      switch (operation)
  172.                      {
  173.                          case "U":
  174.                              res = SeT.union(left,right);
  175.                              break;
  176.                          case  "∩":
  177.                              res = SeT.intersection(left,right);
  178.                              break;
  179.                      }
  180.                      System.out.println( left +" " + operation + " " + right  + " = "  +res);
  181.                  }
  182.             }
  183.         }
  184.         catch(IOException ex){
  185.             System.out.println(ex.getMessage());
  186.         }
  187.     }
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement