Я нашел странное поведение этого Java-кода. Мне нужно хранить карту с целым числом в качестве ключа (используется для идентификации лица) и список статьи (в основном Java Bean), поэтому я определил его таким образом:Карта списков: столкновение элементов
HashMap<Integer, List<Article>> articles = new HashMap<Integer, List<Article>>();
Чтобы заполнить содержимое, Я использую следующие инструкции:
List<Article> topic_articles = new ArrayList<Article>();
topic_articles = emFactory.getRelatedArticle(ticket, list_1, true);
articles.put(15, new ArrayList<Article>(topic_articles));
for (Article article : topic_articles) {
logger.debug("DEBUG ### " + article.getTitle() + " - " + article.getWeight());
}
topic_articles = new ArrayList<Article>();
topic_articles = emFactory.getRelatedArticle(ticket, list_2, true);
articles.put(18, new ArrayList<Article>(topic_articles));
for (Article article : topic_articles) {
logger.debug("DEBUG ### " + article.getTitle() + " - " + article.getWeight());
}
выход журнала является:
DEBUG ### How to start eating healthier - 1980
DEBUG ### Food label claims - 1980
DEBUG ### The glycemic index and carb confusion - 1980
DEBUG ### What is Health Check - 1980
DEBUG ### Why you should keep a food journal - 1980
DEBUG ### The sweet and lowdown on alternatives to white sugar - 1980
DEBUG ### An apple a day really can keep the doctor away - 1650
DEBUG ### Canada's new and improved food guide - 1650
DEBUG ### Choosing the right cooking oil - 1650
DEBUG ### How much fibre is in food? - 1650
DEBUG ### The glycemic index and carb confusion - 768
DEBUG ### The importance of weight management in diabetes - 768
DEBUG ### Why fibre is a friend to people with diabetes - 768
DEBUG ### Healthy recipes - 768
DEBUG ### Diabetes diet makeover - 768
DEBUG ### Exercise and your blood sugar - 768
DEBUG ### Make your favourite recipes diabetes-friendly - 768
DEBUG ### Why you should keep a food journal - 640
DEBUG ### Overweight or obese? - 512
DEBUG ### Diet + exercise = weight loss - 512
Совершенно верно ... но, когда я вернусь к абоненту карту, и я стараюсь читать внутренние списки, я получаю столкновение по статьям с таким же названием (Гликемический индекс и путаница карбюратора).
for (Map.Entry<Integer, List<Article>> entry : articles.entrySet()) {
logger.debug("####### Pipeline : " + entry.getKey());
for (Article article : entry.getValue()) {
logger.debug("DEBUG ### " + article.getTitle() + " - " + article.getWeight());
}
}
Это выход:
####### List : 1
DEBUG ### The glycemic index and carb confusion - 768
DEBUG ### The importance of weight management in diabetes - 768
DEBUG ### Why fibre is a friend to people with diabetes - 768
DEBUG ### Healthy recipes - 768
DEBUG ### Diabetes diet makeover - 768
DEBUG ### Exercise and your blood sugar - 768
DEBUG ### Make your favourite recipes diabetes-friendly - 768
DEBUG ### Why you should keep a food journal - 640
DEBUG ### Overweight or obese? - 512
DEBUG ### Diet + exercise = weight loss - 512
####### List : 2
DEBUG ### How to start eating healthier - 1980
DEBUG ### Food label claims - 1980
DEBUG ### The glycemic index and carb confusion - 768
DEBUG ### What is Health Check - 1980
DEBUG ### Why you should keep a food journal - 1980
DEBUG ### The sweet and lowdown on alternatives to white sugar - 1980
DEBUG ### An apple a day really can keep the doctor away - 1650
DEBUG ### Canada's new and improved food guide - 1650
DEBUG ### Choosing the right cooking oil - 1650
DEBUG ### How much fibre is in food? - 1650
Что происходит ???? Похоже, что во второй раз, когда я помещал Список на карту, элемент с тем же названием первого списка переопределяется вторым. В основном позиция правильная, но вес нет. Я использую Java 1.6
Любые подсказки? Это сводит меня с ума ....
благодаря
Andrea
Непонятно, в чем проблема. Что такое «столкновение» в этом случае? – Jokab
В этом случае столкновение происходит в двух списках, элементы «Гликемический индекс и путаница карбюратора - 768» в элементе переопределения списка 2 «Гликемический индекс и путаница карбюратора - 1980» в списке 1. Не уверен, что «столкновение» является правильным срок .... –
Что делает 'emFactory.getRelatedArticle'? Что такое 'билет',' list_1' и 'list_2'? – andy256