Я работаю над реорганизацией небольшой части широкомасштабной системы управления конфигурацией для моего университета.Динамическая многомерная структура Java для замены статического многомерного массива
Мы используем некоторые инструменты с открытым исходным кодом для машинного обучения, такие как Weka, и аспект, который я назначил рефактору, имеет дело с интеллектуальными данными и правилами построения.
Файлы с открытым исходным кодом, которые мы использовали из Ливерпуля и Японии, работают хорошо, но есть проблемы с использованием памяти, когда мы используем программу для крупномасштабных проектов.
Я выделил основные ящики памяти и пришел к выводу, что мне нужно выяснить другую структуру данных для хранения и обработки данных. В настоящее время программа использует то, что в конечном итоге становится очень большим многомерным массивом целых чисел, объектов, строк и т. Д.
Существует несколько методов, которые просто перенастраивают настройку ассоциаций после того, как мы выводим правила поведения , Во многих случаях мы добавляем или вычитаем только один элемент или просто сплющиваем многомерные массивы.
В первую очередь я программирую на C/C++, поэтому я не являюсь экспертом в структурах данных, доступных на Java. Я хочу заменить статические массивы динамической структурой, которая может быть легко изменена без необходимости создания второго многомерного массива.
Что происходит сейчас, нам нужно создавать абсолютно новую структуру каждый раз, когда мы добавляем и удаляем правила, объекты или другие разные данные из многомерного массива. Затем мы сразу же копируем новый массив.
Я хотел бы иметь возможность просто использовать один и тот же многомерный массив и просто добавить новую строку и столбец. Впоследствии я хотел бы иметь возможность манипулировать данными в структуре, просто сохраняя временное значение и перезаписывая предыдущие значения, сдвигая влево, вправо и т. Д.
Может кто-нибудь подумать о каких-либо структурах данных в Java, которые бы соответствовали счет?
В соответствующей заметке я просмотрел явную сборку мусора, но обнаружил, что могу реально предложить собирать JVM, вызывая System.Gc() или манипулируя поведением мусорной коллекции JVM с помощью настройки , Есть ли лучший или более эффективный способ?
С уважением, EDM
Почему бы вам обратиться к Javadoc Java SE 6, а не 7? Почему вы используете переменную типа ArrayList, а не List? «Многомерная вещь» ... хорошо. Поэтому в спецификации также говорится. Тем не менее спецификация продолжает ссылаться на «многомерные массивы» на всем протяжении, а также сообщество разработчиков. Основное различие между Java и другими языками, у которых есть «истинный» многомерный массив, состоит в том, что для многомерных массивов в Java не обязательно иметь массивы одинаковой длины на каждом уровне. –
Когда вы ищете Javadocs, это довольно случайно, если вы получите 6 или 7 (или 5), все они в основном идентичны, поэтому это редко имеет значение. –