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

Core, Generic

22.02.2022, 13:40. Показов 15651. Ответов 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_
4575 / 2773 / 491
Регистрация: 28.04.2012
Сообщений: 8,760
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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru