Можно ли создать открытый массив? - PullRequest
4 голосов
/ 05 марта 2011

Мне было интересно, смогу ли я создать массив без ввода значения.Я не совсем понимаю, как они работают, но я делаю программу инвентаризации и хочу, чтобы мой массив был настроен таким образом, чтобы пользователь мог вводить продукты и связанные с ними переменные до тех пор, пока они не будут выполнены, тогда ему нужно использоватьМетод расчета общей стоимости для всех продуктов.Каков наилучший способ сделать это?

Ответы [ 5 ]

6 голосов
/ 05 марта 2011

Используйте ArrayList.

Это позволит вам создать динамический массив.

http://download.oracle.com/javase/1.5.0/docs/api/java/util/ArrayList.html

Вот пример / обзор:

http://www.anyexample.com/programming/java/java_arraylist_example.xml

3 голосов
/ 05 марта 2011

Да, вы можете сделать это. Вместо использования массива примитивного типа, например new int[10], используйте что-то вроде класса Vector или, возможно, ArrayList (проверьте документы API для различий). Использование ArrayList выглядит следующим образом:

ArrayList myList = new ArrayList();
myList.add("Item 1");
myList.add("Item 2");
myList.add("Item 3");
// ... etc

Другими словами, он динамично растет по мере добавления к нему вещей.

1 голос
/ 05 марта 2011

Как указала Orbit, используйте ArrayList или Vector для ваших требований к хранению данных, им не нужно указывать конкретный размер при объявлении.

0 голосов
/ 05 марта 2011

В других ответах уже говорилось, как это сделать правильно. Для полноты в Java каждый массив имеет фиксированный размер (длину), который определяется при создании и никогда не изменяется. (Массив также имеет тип компонента, который никогда не изменяется.)

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

0 голосов
/ 05 марта 2011

Вы должны ознакомиться с Java Collections Framework, который включает ArrayList, как указали другие. Полезно знать, какие другие объекты коллекции доступны, поскольку один может лучше соответствовать вашим потребностям, чем другой для определенных требований. Например, если вы хотите убедиться, что ваш «список» не содержит повторяющихся элементов, HashSet может быть ответом.

http://download.oracle.com/javase/tutorial/collections/index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...