Разработка Java: вложенный массив, эквивалентный этому XML - PullRequest
0 голосов
/ 30 января 2011

Я хочу создать несколько массивов ключ / значение в Java, которые будут размещаться в главном массиве. Затем я хочу иметь возможность перебрать мастер-массив и получить ключ / значение каждого массива.

Я хочу, чтобы массив был в стиле, аналогичном этому XML:

<snippets>
  <snippet1>
    <name>Name</name>
    <desc>Desc</desc>
  </snippet1>
  <snippet2>
    <name>Name</name>
    <desc>Desc</desc>
  </snippet2>
</snippets>

или есть ли способ сделать это без использования массивов?

Ответы [ 4 ]

1 голос
/ 30 января 2011

Вероятно, хороший случай для использования классов :) Это должно помочь вам начать (и довольно просто):

class Snippets {
   private List<Snippet> snippets;
   List<Snippet> getSnippets() { ... };
   ...
}
class Snippet {
   private String name;
   private String desc;
   ...
}
1 голос
/ 30 января 2011

Вы можете использовать структуру данных Multimap Google Collection. Более конкретно, для получения дублированных пар ключ / значение вы можете использовать ListMultiMap .

Также взгляните на этот похожий вопрос.

Если вам не нужны повторяющиеся пары ключ / значение, просто используйте стандартную реализацию Java HashMap интерфейса Map .

0 голосов
/ 30 января 2011

Я бы использовал (Hash) Карты и (Массив) Списки.

Вы можете хранить все в объекте, как это:

List<Map<String,String>> yourList = new ArrayList<Map<String,String>>();

Map<String,String> map1 = new HashMap<String,String>();
map1.put("key1", "value1");
map1.put("key2", "value2");
yourList.add(map1);

Вот как вы проходите по нему:1006 *

for (Map<String,String> map: yourList) 
  for (Entry<String, String> entry: map.entrySet())
    System.out.println(entry.getKey()+": "+entry.getValue());
0 голосов
/ 30 января 2011

Если вы действительно хотите использовать массивы, вот пример:

String[][] snippets = new String[][] {
  new String[] { "Name" , "Desc" },
  new String[] { "Name2" , "Desc2" },
};

for(String[] pair: snippets) {
  String key = pair[0];
  String val = pair[1];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...