Как вставить в массив Java String, как правильно найти индекс, isAvailable логический метод, частота элемента - PullRequest
0 голосов
/ 18 апреля 2019

У меня проблемы с этими методами в моем коде, к сожалению, они должны быть строковым массивом.

(часть кода, которого я не получил)

import java.util.Scanner;

public class SortedStringArray {
    private Scanner input = new Scanner(System.in);
    private String[] list = new String[10];

    // default
    public SortedStringArray() {
        String[] list = new String[10];
    }

    // initial
    public SortedStringArray(int initialCapacity) {
        String[] list = new String[initialCapacity = input.nextInt()];
    }

    // insert
    public void insertItem(String item) {
        int i = list.length;
        int n = ++i;
        String[] list2 = new String[n];
        for (int cnt = 0; cnt < list.length; cnt++) {
            list2[cnt] = list[cnt];
        }

    }

    // print
    public void print() {
        System.out.println(list);
    }

    // isAvailable
    public boolean isAvailable(String item) {

        return true;
    }

    // get index
    public int getIndex(String item) {
        int index = -1;
        for(int i=0; i < list.length; i++) {
            index = i;
            break;
        }
        return -1;
    }

    // delete
    public void delete(int index) {
        System.out.println("Deleting an Item: ");
        String item = input.next();
        // not available
        if (list == null || index < 0 || index >= list.length) {
            System.out.println(item + " is NOT available in sorted array to delete !");
        }
        String[] list2 = new String[list.length - 1];
        for (int i = 0, k = 0; i < list.length; i++) {
            if (i == index) {
                continue;
            }
            list2[k++] = list[i];
        }

        // return array
        System.out.println(item + " is deleted from sorted string array !");
    }

    // size
    public int size() {
        return list.length;
    }
    // frequency of item

    public int frequencyOfItem(String item) {

    }
}

Текущий отсортированный массив с размером: 24 A A A F H H I J K K M M M N O O O Q R X X Y Z Z

Поиск предмета: G НЕ доступен в массиве отсортированных строк

Удаление элемента: R удален из отсортированного массива строк!

Текущий отсортированный массив с размером: 23 A A A F H H I J K K M M M N O O O Q X X Y Z Z

Частота предмета: Число вхождений L составляет 0

1 Ответ

1 голос
/ 18 апреля 2019

Если это проблема, вот несколько советов:

  • isAvailable() метод - просто переберите массив и сравните строки с методом equals().Если вы найдете один - верните true, в противном случае - false.
  • frequencyOfItem() метод - то же, что и выше, но вам также понадобится счетчик для подсчета количества раз, которое метод equals() имеетвернул истину.Просто верните это число.
  • delete() метод - сдвиньте все значения справа от удаляемого объекта влево (их новые индексы (i) будут i - 1).Используйте поле типа int для хранения количества значений в списке массивов.(list.length() != size()).
  • insertItem() - найти правильный индекс для вставки (это отсортированный массив, верно?), Сдвинуть все значения, начиная с найденного индекса вправо (i + 1).Вставьте новый элемент в найденный индекс.Примечание: вам придется перестраивать массив, если не хватает места для новых элементов.Взгляните на метод Arrays.copyOf().
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...