Объекты в ArrayList - PullRequest
       4

Объекты в ArrayList

1 голос
/ 14 ноября 2011

Я работаю над проектом java для класса, в котором пользователь вводит почтовый индекс, и информация (city, state..ect), которая сопровождает почтовый индекс, возвращается пользователю.

Все почтовые индексы хранятся в массиве, который хранит каждый почтовый индекс и его информацию в объекте.

Этот код используется для добавления объекта почтового индекса в список массивов:

ZipCode zip = new Zipcode(zipcode, city, state, lat, lon); 

zipCode.add(zip); 

Мой мой вопрос: как получить определенную информацию из массива из каждого объекта?

Например, если бы я хотел использовать метод getZip(), чтобы вернуть почтовый индекс объекта zipCode в месте 39, как бы это было сделано?

Надеюсь, я не запутался.

Ответы [ 4 ]

3 голосов
/ 14 ноября 2011

* Например, если я хочу использовать метод getZip (), чтобы вернуть почтовый индекс объекта zipCode в месте 39, как это будет сделано?*

Как насчет

zipCode.get(39).getZip()

Однако, похоже, вы выиграете от использования Map<Integer, ZipCode> zipCodes и использования

zipCodes.put(zipCodeNumber, zipObject);
1 голос
/ 14 ноября 2011

Помните - у вас есть (по крайней мере) два разных класса:

  • ваши "почтовые индексы"

    ... и ...

  • ваш список почтовых индексов

Таким образом, ваш реальный код должен выглядеть примерно так:

  List<ZipCode> zipCodeList = new List<ZipCode>();
  ZipCode aZipCode = new Zipcode(zipcode, city, state, lat, lon);
  zipCodeList.add (aZipCode);

Ваша функция getZip () (где бы вы ни решили ее разместить) может выглядеть примерно так:

  ZipCode myZip = someOtherObject.getZip (i);

Ключевым моментом является определение того, ЧЕМ являются ваши классы, и ЧТО каждый класс "несет ответственность" за выполнение. Остальное (включая вашу фактическую реализацию) следует.

Это может помочь написать простую диаграмму классов на листе бумаги: коробки с именем класса, основными методами и основными полями. Вроде как UML - только как простой , насколько это возможно.

Надеюсь, это поможет!

PS: Я предположил, что ваш метод getZip () вернул весь объект ZipCode (широта, долгота ... вместе с "zipcode"). Возможно, вы вместо этого хотели использовать метод доступа только для «почтового индекса» (например, «90630»). В этом случае я бы порекомендовал что-то вроде этого:

  List<ZipCode> zipCodeList = new List<ZipCode>();
  zipCodeList.add ("90210", "Beverly Hills", "CA", "000000.00", "000000.00");
  ...
  ZipCode zipCode = zipCodeList[0];
  string zipcode = zipCode.getZipcode ();
  string state = zipCode.getState ();
  ...
0 голосов
/ 14 ноября 2011

Просто получите доступ к массиву с помощью метода get ().

Для вашего примера:

zipCode.get(39).getZip();

Извините за ошибку, я слишком быстро ответил на нее.

0 голосов
/ 14 ноября 2011

Чтобы получить объект по n-му индексу ArrayList, используйте:

arrayList.get(n)

В вашем случае это будет:

ZipCode result = zipCode.get(39);

Затем вы можете вызватьgetZip() метод полученного объекта ZipCode, говоря:

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