Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/76: Рейтинг темы: голосов - 76, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 08.01.2022
Сообщений: 11

Core, Generic

22.02.2022, 13:40. Показов 15763. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Массивы в Java имеют фиксированную длину. Попробуем обойти это ограничение. Создайте класс DynamicArray, который хранит в себе массив, и имеет методы для добавления void add(T el), void remove(int index) удаления и извлечения T get(int index) из него элементов, при переполнении текущего массива, должен создаваться новый, большего размера.

Для возможности работы с различными классами DynamicArray должен быть дженериком. Для решения задачи можно воспользоваться методами из класса java.util.Arrays. Импорт этого класса уже объявлен в тестирующей системе. Добавлять его явно не нужно

Требования:
1. должен быть класс public static class DynamicArray
2. класс DynamicArray должен иметь методы публичные void add(T el), void remove(int index) и T get(int index)
3. В случае подбора некорректного индекса ожидается, что метод get выбросит ArrayIndexOutOfBoundsException
4. класс DynamicArray должен иметь публичный конструктор по умолчанию
5. работа методов должна соответствовать условию

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
public static class DynamicArray<T> {
    private T[] array = (T[]) new Object[10];
    private int size = 0;
 
    public void add(T el) {
        if (size == array.length) {
            array = Arrays.copyOf(array, array.length + 1);
        }
        array[size++] = el;
    }
    public void remove(int index) {
        System.arraycopy(array, index + 1, array, index, array.length - index - 1);
    }
    public T get(int index) {
        try {
            for (int i = 0; i <= array.length; i++) {
                array[i] = (T) Arrays.copyOf(array, 10);
            }
        } catch (ArrayIndexOutOfBoundsException e) {
            throw new NullPointerException();
        }
        return  (T) array[index];
    }
}
Ваш ответ не прошел тест!
Тест№2 провален. Ваш класс должен предоставлять возможность взятия элемента по индексу.
Но при работе метода get возникло исключение: NullPointerException

Бьюсь уже 4 часа с этой задачей, что нужно ей, не понимаю
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.02.2022, 13:40
Ответы с готовыми решениями:

Generic types
Доброго времени суток! Имею следующее: ListOperator public final class ListOperator { /** * Returns max element in...

Java generic
Подскажите как правильно вывести матрицу из public GenericMatrix&lt;?&gt; add(GenericMatrix&lt;?&gt; A, GenericMatrix&lt;?&gt; B). как вызвать это в...

Generic Type
У меня есть package Жители. Есть еще два package. dogs, cats. Где есть классы Dog, Puppy &amp; Cat, Kitten. Которые имеют только конструкторы...

7
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
22.02.2022, 13:51
Цитата Сообщение от nikita13456 Посмотреть сообщение
Но при работе метода get возникло исключение: NullPointerException
Цитата Сообщение от nikita13456 Посмотреть сообщение
throw new NullPointerException();
rly...

Добавлено через 1 минуту
зачем ты вообще ловишь ArrayIndexOutOfBound? Про if слышал?
Зачем тебе цикл, чтобы достать один элемент по индексу?
Цитата Сообщение от nikita13456 Посмотреть сообщение
array[i] = (T) Arrays.copyOf(array, 10);
это че ваще за хренота
0
0 / 0 / 0
Регистрация: 08.01.2022
Сообщений: 11
22.02.2022, 13:59  [ТС]
Думаешь я понимаю что за хренота? в голове каша, сам не понимаю что делаю, идея подсказывает.
Дельного бы лучше чего подсказал.
Java
1
array[i] = (T) Arrays.copyOf(array, 10);
новая длина массива, разве нет?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
22.02.2022, 14:03
Цитата Сообщение от nikita13456 Посмотреть сообщение
Дельного бы лучше чего подсказал.
ты не знаешь как из массива элемент по индексу достать?

Добавлено через 2 минуты
Цитата Сообщение от nikita13456 Посмотреть сообщение
return  (T) array[index];
вроде знаешь.
А зачем ты пишешь какой-то код, который не понимаешь?
Проверь не выходит ли индекс за пределы ифом, если нет - вернуть элемент, елси выходит - кинуть ArrayIndexOutOfBound
0
0 / 0 / 0
Регистрация: 08.01.2022
Сообщений: 11
22.02.2022, 14:08  [ТС]
я же тебе говорю, бардак в голове, уже ничего не понимаю
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
22.02.2022, 15:12
Цитата Сообщение от nikita13456 Посмотреть сообщение
новая длина массива, разве нет?

Не по теме:

Новая длина массива
Осветила говнокод
Но у нас уже нет силы
Нам бардак она не уберёт



Цитата Сообщение от nikita13456 Посмотреть сообщение
сам не понимаю что делаю
Может, стоит поразбираться, книжку какую-нибудь по программированию почитать, потом по Java?

Цитата Сообщение от nikita13456 Посмотреть сообщение
Java
1
array[i] = (T) Arrays.copyOf(...);
Вот что это значит, по-твоему?
0
0 / 0 / 0
Регистрация: 08.01.2022
Сообщений: 11
24.02.2022, 18:21  [ТС]
Добавление элемента в массив?
0
7 / 6 / 1
Регистрация: 31.10.2021
Сообщений: 59
09.07.2022, 00:50
если еще актуально то практически все методы эти есть в ArrayList -> JavaDoc
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
public static class DynamicArray<T> {
    private T[] elements;
    private int size;
 
    public DynamicArray() {
        this.elements = (T[]) new Object[10];
    }
 
    private int isIndexExist(int index) {
        if (index >= size || index < 0) {
            throw new ArrayIndexOutOfBoundsException();
        }
        return index;
    }
 
    private T[] increaseCapacity() {
        T[] temp = (T[]) new Object[(elements.length * 2)];
        System.arraycopy(elements, 0, temp, 0, elements.length);
        return temp;
    }
 
    public T get(int index) {
        isIndexExist(index);
        return elements[index];
    }
 
    public void remove(int index) {
        isIndexExist(index);
        T[] temp = elements;
        elements = (T[]) new Object[temp.length - 1];
        T value = temp[index];
        System.arraycopy(temp, 0, elements, 0, index);
        System.arraycopy(temp, index + 1, elements, index, temp.length - index - 1);
        size--;
    }
 
    public void add(T el) {
        if (size == elements.length)  {
            elements = increaseCapacity();
        }
        elements[size] = el;
        size++;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.07.2022, 00:50
Помогаю со студенческими работами здесь

Generic класс
Здравствуйте. Хочу создать generic-класс, который будет обрабатывать коллекции разных типов. Проблема в том, что я предполагаю...

Разработать Generic класс
Разработать Generic-класс, позволяющий работать с группами объектов по варианту (добавлять, удалять и т.д.). В качестве параметра класс...

Создать generic - класс
1) разработать Generic-класс, который возвращает копию входной группы с инвертированным порядком элементов. В качестве параметра класс...

Массив в java generic
Выдает ошибку когда заполняю массив рандомными числами, ожидает тип Т, а приведен double. Подскажите как исправить, привести к одному...

Создать Generic класс
Создать generic класс где вводится массив, перемешивается и выводится, где присутствует тип данных T (т.е. может быль любым) public class...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru