Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Java / Java_LB#6

.docx
Скачиваний:
4
Добавлен:
27.01.2022
Размер:
126.89 Кб
Скачать

Министерство образования и науки Кыргызской Республики

Кыргызский Государственный Технический Университет им И. Раззакова Факультет Информационных Технологий

Кафедра «Информатика и вычислительная техника»

ОТЧЕТ

Лабораторная работа №6

Бишкек 2019

Создайте следующие коллекции. Выполните различные действия с ними.

Коллекция для хранения объектов: Vector

Коллекция для хранения и поиска уникальных идентификаторов: HashSet

  1. Создать объект List с использованием объекта ArrayList. Заполнить произвольными числовыми данными, вывести содержимое списка на экран; отсортировать элементы по возрастанию, вывести результат на экран; разупорядочить массив (метод Collection.shuffle()), вывести окончательный вариант на экран.

  2. Задача со скобками. Вводится символьная строка, в которой записано выражение со скобками трех типов: [], {} и (). Определить, верно ли расставлены скобки (не обращая внимания на остальные символы).

  3. Ввести строки, записать их в стек. Вывести строки в обратном порядке.

public static void main(String args[]) {

        System.out.println("---------------------------------Task1.1---------------------------------");

        

        Vector vector = new Vector();

        vector.add("Weasley");

        vector.add("Potter");

        vector.add("Greynger");

        vector.add("Drago");

        vector.add(0,"Snagg");

        System.out.println("The vector is: " + vector);

        for(int i=0;i<vector.size();i++){

            System.out.println("The characters are: " + vector.get(i));

        }

        System.out.println("Size of Vector: " + vector.size());

        System.out.println("Capacity of Vector: " + vector.capacity());

        vector.ensureCapacity(40);

        System.out.println("Capacity of Vector: " + vector.capacity());

        vector.trimToSize();

        System.out.println("Capacity of Vector: " + vector.capacity());

        vector.setSize(3);

        for(int i=0;i<vector.size();i++){

            System.out.println("Changed characters: " + vector.get(i));

        }

        System.out.println("-----------------------Task1.2-------------------");

        HashSet<String> hash_set = new HashSet<String>();

        // Добавляем элементы в HashSet с помощью метода add()

        hash_set.add("India");

        hash_set.add("Australia");

        hash_set.add("South Africa");

        hash_set.add("India");// пытаемся добавить еще один такой же элемент

        // Выводим элементы HashSet в консоль

        System.out.println("HashSet is: " + hash_set);

        System.out.println("List contains India or not: " + hash_set.contains("India"));

        // Удаляем элементы из множества с помощью метода remove()

        hash_set.remove("Australia");

        System.out.println("List after removing Australia: " + hash_set);

        System.out.println();

        // Проходимся по элементам HashSet с помощью итератора:

        System.out.println("Iterating over list:");

        Iterator<String> iterator = hash_set.iterator();

        while (iterator.hasNext())

            System.out.println(iterator.next());

Результат:

2

System.out.println("---------------------------Task2-------------------------");

        List<Integer> myList = new ArrayList<Integer>();

        for (int i = 0; i < 10; i++) {

            myList.add((int) (Math.random() * 100));

        }

        System.out.println("Filled:   " + myList);

        Collections.sort(myList);

        System.out.println("Sorted:   " + myList);

        Collections.shuffle(myList);

        System.out.println("Shuffled: " + myList);

Результат:

3

//---------------------------------------Task3 method---------------------------------------

    private static final char rob = '(';

    private static final char rcb = ')';

    private static final char sob = '[';

    private static final char scb = ']';

    private static final char cob = '{';

    private static final char ccb = '}';

    public static boolean isCorrectBrackets(String value) {

        Stack<Character> stack = new Stack<Character>(); // создаем стек, куда будем помещать скобки

        char[] array = value.toCharArray(); // разбиваем строку на массив символов

        for(char c : array) {  // для каждого символа в массиве

            if((c == rcb || c == scb || c == ccb) && stack.empty()) { // если символ является закрывающей скобкой И стек пустой

                return false; // сразу возвращаем false, т.к. закрывающая скобка не может идти первой

            }

            if(c == rob || c == sob || c == cob) { // если символ является открывающей скобкой,

                stack.push(c); // заталкиваем его в стек

            }

            if((c == rcb || c == scb || c == ccb) && !stack.empty()) { // если символ является закрывающей скобкой и стек НЕ пустой (т.е там уже находится одна или более открывающих скобок),

                char t = stack.peek(); // создаем временную переменную, в которую помещаем символ, находящийся "сверху" в стеке. Этот метоод не удаляет элемент из стека

                switch(c) { // оператором выбора определяем символ

                case ')': // если это закрывающая круглая скобка

                    if(t == '(') stack.pop(); // если наверху стека находится открывающая круглая скобка, то удаляем ее из стека. Таким образом, как-бы отбрасываются корректные пары скобок

                    break;

                case ']':  // аналогично для других скобок

                    if(t == '[') stack.pop();

                    break;

                case '}':

                    if(t == '{') stack.pop();

                    break;

                }

            }

        }

        if(stack.empty()) { // если стек оказался пуст - значит у каждой скобки была своя корректная пара

            return true;

        } else { // если нет - значит скобки были расставлены неправильно

            return false;

        }

    }

public static void main(String args[]) {

System.out.println("-------------------------Task3----------------------------");

        Scanner scan = new Scanner(System.in);

        System.out.print("Введите текст: ");

        String example = scan.nextLine();

        if(isCorrectBrackets(example)) {

            System.out.println("Скобки расставлены правильно");

        } else {

            System.out.println("Скобки расставлены неправильно");

        }

        scan.close();

}

Результат:

4

System.out.println("-------------------------Task4---------------------------");

        Stack<String> stack = new Stack<String>();

        System.out.print("Enter text, or done to stop: ");

        Scanner scanner = new Scanner(System.in);    

        String word=null;          

        while (scanner.hasNextLine()) {               

            word = scanner.nextLine();                  

            if (word != null) {                         

                word = word.trim();                       

                if (word.equalsIgnoreCase("done")) {      

                    break;                                  

                }

                stack.push(word);                              

            }else {

                break;                                   

            }

        }

        while(!stack.isEmpty()){

            System.out.println("Reverse of the text: \"" + stack.pop()); 

        }

        scanner.close();

    }

}

Результат:

Соседние файлы в папке Java