Member 13618455 Ответов: 3

Как мне улучшить этот расширяющийся массив?


Это и есть упражнение.

В этом упражнении вы получите возможность улучшить наш расширяющийся массив, чтобы добавить некоторые другие функции, которые вы получаете в ArrayList.

Вы должны добавить три метода:

общественного недействительными добавить(тип int индекс, элемент инт )
public int remove(индекс int)
размер государственной инт ()

//////////////////////////////////////////////////////////////////////////////////////

Это и есть код:
public class ExpandingArray
{
    private static final int STARTING_SIZE = 10;
    private int[] arr;
    private int currentSize;
    private int numElements;
    
    public ExpandingArray()
    {
        arr = new int[STARTING_SIZE];
        currentSize = STARTING_SIZE;
        numElements = 0;
    }
    
    // Remove the element at index `index` and shift
    // all subsequent elements to the left. 
    public int remove(int index)
    {
        // your code here
        return 0;
    }
    
    // Add the int `element` at the `index` in the array.
    // You'll need to shift everything one index to the right
    // after this index.
    public void add(int index, int element)
    {
        // your code here   
    }
    
    // Return the number of elements in your array.
    public int size()
    {
        // your code here
        return 0;
    }
    
    private boolean isFull()
    {
        return numElements == currentSize;
    }
    
    private void expand()
    {
        System.out.println("Expanding");
        int newSize = currentSize * 2;
        int[] newArray = new int[newSize];
        
        // Copy over old elements
        for(int i = 0; i < currentSize; i++)
        {
            newArray[i] = arr[i];
        }
        
        currentSize = newSize;
        arr = newArray;
    }
    
    public int get(int index)
    {
        return arr[index];
    }
    
    public void add(int x)
    {
        if(isFull())
        {
            expand();
        }
        arr[numElements] = x;
        numElements++;
    }
    
    public String toString()
    {
        String str = "{";
        for (int i=0; i < numElements; i++) {
            str += arr[i] + ", ";
        }
        if (str.length() > 0 && str.charAt(str.length()-2)==',') {
            str = str.substring(0, str.length()-2);
            str += "}";
        }
        return str;
    }
}


Что я уже пробовал:

Я ничего не пробовал.

3 Ответов

Рейтинг:
2

OriginalGriff

Мы не делаем домашнее задание: оно задано не просто так. Она существует для того, чтобы вы думали о том, что вам сказали, и пытались понять это. Он также существует для того, чтобы ваш наставник мог определить области, в которых вы слабы, и сосредоточить больше внимания на корректирующих действиях.
Поэтому начните с рассмотрения того, что это делает, и сравните это с ArrayList. Это должно сказать вам, что вы упускаете и что вы должны добавить.

Попробуйте сами, возможно, вы обнаружите, что это не так сложно, как вы думаете!

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!


Member 13618455

Наш учитель тоже не может этого сделать. :(

OriginalGriff

Тогда вам нужен новый учитель...

Рейтинг:
2

Patrice T

Цитата:
Я ничего не пробовал.

Первое, что нужно попробовать, - это прочитать документацию.
Цитата:
Наш учитель тоже не может этого сделать.

Тогда ваш учитель не квалифицирован.

Мы не делаем вашу домашнюю работу.
Домашнее задание не предназначено для проверки ваших навыков просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, которые вы испытываете при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по исправлению положения.
Любая ваша неудача поможет вам узнать, что работает, а что нет, это называется "методом проб и ошибок".
Так что попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.


Рейтинг:
1

CPallini

Цитата:
Я ничего не пробовал.
Тогда попробуй что-нибудь.

Например, size реализация метода тривиальна.
Два других метода, а именно: add и remove это сложнее, во всяком случае, вы знаете, специфический вопрос приветствуется здесь.


OriginalGriff

Он действительно пытался что-то сделать.
Сочетание клавиш Ctrl+А, Ctrl+с, клавиш Alt+или Ctrl+V, нажмите кнопку "Опубликовать".
Такого рода усилия могут истощить студента, вы знаете - они деликатные типы.

CPallini

Я слишком старомоден, чтобы оценить такие, по общему признанию, замечательные усилия.