Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Определить класс Set на основе множества целых чисел, n = размер. Создать
- методы для определения пересечения и объединения множеств.
- Примечание: использовать коллекции JAVA, входные данные
- передаются через текстовый файл.*/
- /*input*/
- [1,2,3,4,5]∩[2,3,4,6]
- [1,2,3,4,5]U[2,3,4,6]
- [3,5,0,11,12,19]U[2,4,8,12,18,0]
- /*SeT.java*/
- package com.company;
- import java.lang.reflect.Array;
- import java.util.*;
- public class SeT {
- public SeT() {
- arr = new ArrayList<>(n=0);
- }
- public SeT(int [] val)
- {
- arr = new ArrayList<>();
- for (int i = 0; i < (this.n = val.length); ++i)
- this.arr.add(val[i]);
- while (this.haveEqualsElements())
- this.deleteEqualsElement();
- Collections.sort(arr);
- n = arr.size();
- }
- public SeT(String val)
- {
- arr = new ArrayList<>();
- StringBuffer str = new StringBuffer(val);
- str.deleteCharAt(str.indexOf("["));
- str.deleteCharAt(str.indexOf("]"));
- for (String x : str.toString().split(",")) {
- arr.add(new Integer(x));
- }
- while (this.haveEqualsElements())
- this.deleteEqualsElement();
- Collections.sort(arr);
- n = arr.size();
- }
- public SeT(ArrayList<Integer> arr)
- {
- this.arr = new ArrayList<>(arr);
- while (this.haveEqualsElements())
- this.deleteEqualsElement();
- Collections.sort(arr);
- n = arr.size();
- }
- public static SeT intersection(SeT left, SeT right)
- {
- ArrayList<Integer> arr = new ArrayList();
- for (int i = 0; i< left.getN() ; ++i)
- for (int j = 0; j< right.getN() ; ++j)
- if (Integer.compare(left.ElementAt(i),right.ElementAt(j)) == 0)
- arr.add(left.ElementAt(i));
- return new SeT(arr);
- }
- public static SeT union(SeT left, SeT right)
- {
- ArrayList<Integer> arr = new ArrayList();
- arr.addAll(left.getArr());
- arr.addAll(right.getArr());
- Collections.sort(arr);
- return new SeT(arr);
- }
- public boolean haveEqualsElements()
- {
- for (int i = 0; i < this.arr.size(); ++i)
- for (int j = 0; j < this.arr.size(); ++j)
- if(i!=j && Integer.compare(this.arr.get(i),this.arr.get(j))==0) return true;
- return false;
- }
- public void deleteEqualsElement()
- {
- for (int i = 0; i < arr.size(); ++i)
- for (int j = 0; j < arr.size(); ++j)
- if(i!=j && Integer.compare(arr.get(i),arr.get(j))==0) {
- arr.remove(i);
- n--;
- }
- }
- @Override
- public String toString() {
- return arr.toString();
- }
- public ArrayList<Integer> getArr() {
- return arr;
- }
- public int ElementAt(int index) {
- return arr.get(index);
- }
- public void setArr(int [] arr) {
- this.arr = new ArrayList<>();
- for (int i = 0; i < arr.length; ++i)
- this.arr.add(arr[i]);
- }
- public void setArr(ArrayList<Integer> arr) {
- this.arr = arr;
- }
- public void setAt(int index, int val) {
- this.arr.add(index,val);
- }
- public int getN() {
- return n;
- }
- public void setN(int n) {
- this.n = n;
- }
- private int n;
- private ArrayList<Integer> arr;
- }
- /Main.java/
- package com.company;
- import java.io.BufferedReader;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- public class Main {
- public static void main(String[] args) {
- try(FileInputStream fin=new FileInputStream("C:\\Users\\Василий\\IdeaProjects\\lab 06\\src\\com\\company\\input"))
- {
- BufferedReader br = new BufferedReader(new InputStreamReader(fin));
- String strLine;
- while ((strLine = br.readLine()) != null){
- if(strLine.toString().contains("U") || strLine.toString().contains("∩"))
- {
- String operation = strLine.toString().contains("∩") ? "∩" : "U";
- String [] temp = strLine.split(operation);
- SeT left = new SeT(temp[0]);
- SeT right = new SeT(temp[1]);
- SeT res = new SeT();
- switch (operation)
- {
- case "U":
- res = SeT.union(left,right);
- break;
- case "∩":
- res = SeT.intersection(left,right);
- break;
- }
- System.out.println( left +" " + operation + " " + right + " = " +res);
- }
- }
- }
- catch(IOException ex){
- System.out.println(ex.getMessage());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement