пользовательский ввод строк с использованием вектора в Java - PullRequest
0 голосов
/ 16 марта 2012

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


System.out.print("Name: ");
name = sc.next();
System.out.print("Address: ");
address = sc.next();

мой код был таким ... я не знаю, как использовать Vector в имени и адресе клиента ... я использовал строку.

Итак, мне действительно нужна твоя помощь. Tnx

Ответы [ 2 ]

1 голос
/ 16 марта 2012

A Vector - это List, но это старый "сломанный" класс, которого следует избегать. Я говорю «неработающий», потому что он должен был обеспечить безопасный параллельный доступ, взяв List и сделав все методы synchronized, но это уже было наивной попыткой, потому что некоторые атомарные действия основаны на вызове multiplic методы - потоки могут чередовать друг друга и нарушать состояние.

Кроме того, List - плохой выбор для сохранения ввода, поскольку порядок элементов в списке не определен, то есть это просто порядок их добавления. Это сделало бы ваши данные похожими на это:

  • джон
  • 21 прыжок ст
  • и т.д.

Но порядок должен согласовываться всем кодом, использующим его - это «хрупкий» (легко ломающийся).

Тот, кто попросил вас использовать Vector, не имеет права преподавать программирование и должен быть немедленно уволен.


Лучшим выбором будет Map, то есть Set пар ключ / значение. Используя Map, вы можете сохранить данные следующим образом:

  • имя -> Джон
  • адрес -> 21 прыжок ст
  • и т.д.

Данные фактически "именуются", поэтому весь код, использующий их, знает, что означает каждый фрагмент данных.

0 голосов
/ 16 марта 2012

Простой код для добавления:

TreeMap<String, String> customer = new TreeMap<String, String>();
customer.put("John Doe", "Addr1");
customer.put("Jane Doe", "Addr2");

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

Set<String> names = customer.keySet();

или адреса

Map.Entry<String, String> addr = (Entry<String, String>) customer.entrySet();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...