Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/26: Рейтинг темы: голосов - 26, средняя оценка - 4.62
36 / 0 / 0
Регистрация: 15.12.2011
Сообщений: 5

Классы коллекции в Java.

24.12.2011, 11:19. Показов 5561. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить задачи по классам-коллекциям!!!

Задача 1. Vector
Напишите функцию проверки вхождения списка L1 в список L2.

Задача 2. Vector
Напишите процедуру формирования списка L путем включения в него по одному разу элементов, входящих одновременно в списки L1 и L2.

Задача 3. Queue
Опишите очередь и заполните ее вещественными числами с клавиатуры. Выполните циклический сдвиг элементов в очереди так, чтобы в ее начале был расположен наибольший элемент.

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

Задача 5
Задача. На железнодорожном пути находится состав из равного количества белых и черных вагонов. Используя тупик, сформировать новый состав, в котором черные и белые вагоны строго чередуются.

Убедительная просьба объяснить, что делает каждая строка программы. Буду очень признательна.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2011, 11:19
Ответы с готовыми решениями:

Классы в JAVA
Привет! Никак не могу понять почему данный код выдаёт ошибку в конструкторе класса B. class A { int i; A (int i) { this.i =...

Что выбрать из java-фреймворков для вывода коллекции: Spring MVC, Struts, Mojarra(JSF)?
Доброго дня, уважаемые Java-гуру. Подскажите, пожалуйста, какой фреймворк лучше выбрать для быстрой реализации простого учебного примера....

Универсальные классы в java
Собственно сам вопрос. допустим мне надо написать универсальный класс. Для примера. public class Point<T> { private...

1
 Аватар для exiqa
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
24.12.2011, 21:03
Лучший ответ Сообщение было отмечено Кристюшка как решение

Решение

заранее оговорюсь, сам начинающий студент-самоучка, так что решения могут быть не совсем правильны

Задача 1. Vector
Напишите функцию проверки вхождения списка L1 в список L2.

надеюсь мои сумбурные объяснения будут понятны
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import java.util.Vector;
 
 
public class Exercise1 {
    
    public static boolean includesAll(Vector v1, Vector v2) {
        boolean flag = false;
        for(Object obj1 : v1) { // проходим по всем объектам первого вектора
            for(Object obj2 : v2) { // и по всем объектам второго
                if(obj1.equals(obj2)) { // если объект первого равен объекту второго
                    flag = true; // то устанавливаем флажок в true, т.е. первый элемент первого вектора содержится во втором векторе
                    break; // и выходим из второго цикла, т.к. дальше проверять уже не нужно
                } else {
                    flag = false; // если объекты не равны, то флажок ставится в false, и цикл продолжается 
                }
            }
            // после каждого прохода будет проверяться флажок
            if(flag) { // если true
                continue; // то цикл переходит к следующему элементу первого вектора
            } else { // если оказалось, что первый элемент так и не совпал ни с каким элементом второго вектора
                break; // то выходим полностью из всех циклов, т.к. дальше проверять не нужно
            }
        }
        return flag;
    }
    
    public static void main(String[] args) {
        // тестируем. Попутно используем метод
        // containsAll(Collection<?> c) чтобы сравнивать результат
        
        // создадим первый список и добавим элементы
        Vector<String> firstList = new Vector<String>();
        firstList.add("a");
        firstList.add("b");
        firstList.add("c");
        firstList.add("d");
        firstList.add("e");
        
        // создадим второй список и добавим элементы
        Vector<String> secondList = new Vector<String>();
        secondList.add("e");
        secondList.add("c");
        secondList.add("a");
        
        // результат
        System.out.println("Наш велосипед дает: " + includesAll(secondList, firstList));
        System.out.println("Метод containsAll(Collection<?> c) дает: " + firstList.containsAll(secondList));
        
        // добавим во второй список элемент, которого нет в первом
        secondList.add("x");
        
        // результат
        System.out.println("Наш велосипед дает: " + includesAll(secondList, firstList));
        System.out.println("Метод containsAll(Collection<?> c) дает: " + firstList.containsAll(secondList));
    }
 
}
Вывод:
Наш велосипед дает: true
Метод containsAll(Collection<?> c) дает: true
Наш велосипед дает: false
Метод containsAll(Collection<?> c) дает: false

Добавлено через 2 минуты
Задача 2. Vector
Напишите процедуру формирования списка L путем включения в него по одному разу элементов, входящих одновременно в списки L1 и L2.


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.util.Vector;
 
 
public class Exercise2 {
 
    public static Vector createMyVector(Vector v1, Vector v2) {
        Vector my = new Vector(); // создаем новый вектор
        for(Object obj1 : v1) { // проходим по всем объектам первого вектора
            if(v2.contains(obj1)) {  // если второй вектор содержит этот объект
                my.add(obj1); // помещаем его в новый вектор
            }
        }
        return my; // возвращаем вектор
    }
    
    
    public static void main(String[] args) {
        // тестируем
        
        Vector<String> firstList = new Vector<String>();
        firstList.add("a");
        firstList.add("b");
        firstList.add("c");
        firstList.add("d");
        firstList.add("e");
        
        Vector<String> secondList = new Vector<String>();
        secondList.add("a");
        secondList.add("c");
        secondList.add("e");
        secondList.add("y");
        secondList.add("z");
        
        Vector<String> thirdList = createMyVector(firstList, secondList);
        System.out.println("Первый: " + firstList);
        System.out.println("Второй: " + secondList);
        System.out.println("Третий: " + thirdList);
    }
 
}
Вывод:
Первый: [a, b, c, d, e]
Второй: [a, c, e, y, z]
Третий: [a, c, e]

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


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import java.util.Stack;
 
 
public class Exercise4 {
 
    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) {
        // тестируем
        
        String example = "44*(55 - 1) + { 12 + [1;1] - x } / (54 +1)*2 = ?";
        if(isCorrectBrackets(example)) {
            System.out.println("Скобки расставлены правильно");
        } else {
            System.out.println("Скобки расставлены неправильно");
        }
        
        example = "34 - [21;21(x+y]) + { 12 - 12 } ";
        if(isCorrectBrackets(example)) {
            System.out.println("Скобки расставлены правильно");
        } else {
            System.out.println("Скобки расставлены неправильно");
        }
        
    }
 
}

Вывод:
Скобки расставлены правильно
Скобки расставлены неправильно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.12.2011, 21:03
Помогаю со студенческими работами здесь

Можно ли в JAVA создавать классы и обьекты такие как в С++?
Можно ли в JAVA создавать классы и обьекты такие как в С++? Типа: class Class1 {public: int a; double...

Разработка транслятора: Исходный текст -> EMBF -> XML -> классы Java
Здравствуйте Вопрос: Требуется разработать свой транслятор Исходный текст -&gt; EMBF -&gt; XML -&gt; классы Java Подскажите...

Какие классы и методы есть в java для работы/парсинга xml?
подскажите, какие классы и методы есть в java для работы/парсинга xml? если можно то киньте пример

Как в netBeans запускать на выполнение не главные Java классы?
Добрый день, Я создал проект в netBeans, когда создавал проект, wizzard предложил создать главный класс, я назвал его Salut. Потом я...

Массивы JAVA (Коллекции)
Написать код программы, позволяющий обрабатывать сведения о 100 сокровищах в пещере дракона. Реализовать возможность просмотра сокровищ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru