я быть_наст эти пути, как это в массиве «pc_list»HashMap для хранения данных из других таблиц
body/div[3]/div[2]/div/div[1]/div/div[2]/div/div[1]/div/div[1]/div[9]/div[2]
body/div[3]/div[2]/div/div[2]/div[3]/div[1]/div[2]
body/div[3]/div[2]/div/div[2]/div[4]/div[1]/div[1]
и в других таблицы «retrieved_elements» я быть_наст
body/div[3]/div[2]/div/div[1]/div/div[2]/div/div[1]/div/div[1]/div[9]/div[2]/div[2]/a = First 100 Words
body/div[3]/div[2]/div/div[1]/div/div[2]/div/div[1]/div/div[1]/div[9]/div[2]/div[3] = by Roger Priddy
body/div[3]/div[2]/div/div[1]/div/div[2]/div/div[1]/div/div[1]/div[9]/div[2]/div[6]/div[1]/strong = $3.98
body/div[3]/div[2]/div/div[2]/div[3]/div[1]/div[2]/div[2]/strong = $3.98
body/div[3]/div[2]/div/div[2]/div[3]/div[1]/div[2]/a/div[2] = First 100 Words
body/div[3]/div[2]/div/div[2]/div[4]/div[1]/div[1]/div[2]/strong = $3.98
body/div[3]/div[2]/div/div[2]/div[4]/div[1]/div[1]/a/div[2] = First 100 Words
в моем коде, я проверить если таблица retrieved_elements содержит путь из таблицы pc_liste, а затем, если она существует, я сохраняю значение после «=» , например, результат:
body/div[3]/div[2]/div/div[1]/div/div[2]/div/div[1]/div/div[1]/div[9]/div[2]
First 100 Words
by Roger Priddy
$3.98
body/div[3]/div[2]/div/div[2]/div[3]/div[1]/div[2]
$3.98
First 100 Words
body/div[3]/div[2]/div/div[2]/div[4]/div[1]/div[1]
$3.98
First 100 Words
, но я хочу, чтобы сохранить его в карте, на этом этапе я нашел проблему, первое это мой код:
HashMap<String, ArrayList<String>> map_instances = new HashMap<String, ArrayList<String>>();
pc_list = cp.checkSimilarity(retrieved_elements);
for (int a = 0; a < pc_list.size(); a++) {
String chemin_commun = pc_list.get(a);
// System.out.println(chemin_commun);
for (int b = 0; b < retrieved_elements.size(); b++) {
String chemin_complet = retrieved_elements.get(b);
if (chemin_complet.contains(chemin_commun)) {
chemin_complet = chemin_complet.split("=")[1];
inst_value.add(chemin_complet);
//System.out.println(chemin_complet);
map_instances.put(chemin_commun, inst_value);
}
}
}
for (Map.Entry<String, ArrayList<String>> item : map_instances.entrySet()) {
String key = item.getKey();
System.out.println(item);
}
но результат зацикливания карты, как это:
body/div[3]/div[2]/div/div[1]/div/div[2]/div/div[1]/div/div[1]/div[9]/div[2]=[ First 100 Words, by Roger Priddy, $3.98, $3.98, First 100 Words, $3.98, First 100 Words]
body/div[3]/div[2]/div/div[2]/div[4]/div[1]/div[1]=[ First 100 Words, by Roger Priddy, $3.98, $3.98, First 100 Words, $3.98, First 100 Words]
body/div[3]/div[2]/div/div[2]/div[3]/div[1]/div[2]=[ First 100 Words, by Roger Priddy, $3.98, $3.98, First 100 Words, $3.98, First 100 Words]
вместо того, чтобы быть, как:
body/div[3]/div[2]/div/div[1]/div/div[2]/div/div[1]/div/div[1]/div[9]/div[2]=[ First 100 Words, by Roger Priddy, $3.98]
body/div[3]/div[2]/div/div[2]/div[4]/div[1]/div[1]=[ $3.98, First 100 Words]
body/div[3]/div[2]/div/div[2]/div[3]/div[1]/div[2]=[$3.98, First 100 Words]
Похоже, вы не инициализируете 'inst_value' в любом месте. Обратите внимание, что когда вы «ставите» значение на карте, оно помещает ссылку, а не копию значения. – RealSkeptic
Я не думаю, что это инициализация prb:/ – kivok94
Да, это, безусловно, есть: вы продолжаете добавлять значения в один список и помещаете ссылку на один и тот же список во всех ваших записях. – RealSkeptic