Вложенное создание HashMap в Android - PullRequest
0 голосов
/ 08 ноября 2010

В моем приложении у меня есть 3 вкладки, которые содержат ListViews в зависимости от того, какой выбор был на предыдущих вкладках.По сути, на 1-й вкладке перечислены рестораны, на 2-й вкладке перечислены подменю выбранного ресторана, в 3-м меню перечислены элементы этого выбранного подменю, а затем при выборе элемента отобразится информация о питательной ценности этого элемента.Я не знаю, как лучше организовать рестораны / подменю / элементы, но я думал, что это вложенный HashMap, подобный следующему.

HashMap<String, HashMap<String, HashMap<String, Double[]>>>

Что я не знаю, как делать,эффективно построить эту карту, где легко добавлять / удалять вещи в будущем.Я смотрел на XML, но я не мог понять, как это сделать.Если бы я сделал это таким образом, мне также понадобилась бы помощь в написании Java-кода для разбора xml и размещения его в правильном месте на карте.Я не уверен, если вам нужно использовать теги или вы можете просто иметь XML-файл, который использует карту, а затем просто «импортировать» его в ваш проект Java.Я не думаю, что жесткое кодирование каждого элемента в Java было бы очень эффективным, поэтому я надеялся, что смогу получить некоторую помощь.

Возможно, вот так?Не совсем заполнено, но я действительно не знала, что делаю.

<?xml version="1.0" encoding="UTF-8"?>
<util:map name="foodmapping">
 <restaurant key="McDonalds">
  <util:map>

  </util:map>"

 </restaurant>
 <restaurant key="Starbucks">
  <value>2
  </value>
 </restaurant>
</util:map>

1 Ответ

0 голосов
/ 25 июня 2012

Это не может быть специфично для andriod.Я не знаю Android, но основной принцип, который я использую для вложенных хэш-карт.Инициализация должна быть самой последней, вложенной в первую очередь

Возможно, у меня не самый лучший ответ.Я не умею объяснять.Но вот пример кода.ПРИМЕЧАНИЕ: это может не работать на Android, как я сказал, я никогда не работал с Android.Это базовый код Java.

HashMap<String,HashMap<String,HashMap<String,Object>>>example1 = new HashMap<>();
// Init should be furthest first.
HashMap<String,Object>furthest = new HashMap<>();
// This will start up middle level.
HashMap<String,HashMap<String,Object>>middle = new HashMap<>();
// Now that that is done. We can load up values
middle.put("first",furthest);
//Now middle is loaded with basic startup.
example1.put("first",middle);
//Now this initialization example is complete. 
example1.get("first").get("first").put("lowestSecond",/*SOME OBJECT HERE*/); // This is an example of how to put more data into the furthest level down.

Я не верю, что это лучший ответ для вас.Но это основной код, который я бы использовал для создания многоуровневого хэш-карты

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