Составление списков. Первый список может иметь тот же номер, второй будет цена, пытаясь создать третий список, который, если они совпадают, добавляет цены - PullRequest
0 голосов
/ 22 апреля 2020

Прежде всего, извините за ужасный заголовок, я не знаю, как описать это хорошо. У меня есть файл sql с таблицей из двух столбцов (число и цена), в java я извлекаю данные и храню их в двух отдельных списках. Некоторые числа в столбце одинаковы, например (100, 100, 101) и соотносятся с другой ценой, например (50, 40, 60). Мне нужно найти способ сложить все цены, которые имеют одинаковое значение столбца, поэтому вывод, как (90, 60). Списки расположены по порядку, поэтому индекс одного из названных номеров моего списка будет go с индексом один из моего списка с именем price. Небольшой пример списков:

ArrayList<String> number = new ArrayList<String>();
ArrayList<Integer> price = new ArrayList<Integer>();

number.add("100");
number.add("100");
number.add("101");
number.add("101");
number.add("101");
number.add("102");
number.add("103");
number.add("103");

price.add(50);
price.add(150);
price.add(20);
price.add(200);
price.add(75);
price.add(40);
price.add(100);
price.add(125);

Любая помощь будет оценена, спасибо.

Ответы [ 3 ]

1 голос
/ 22 апреля 2020

Предполагая, что размеры number и price одинаковы. Вы можете сделать что-то вроде этого:

HashMap<String, Integer> sumForNumber = new HashMap<>();
for (int i = 0; i < number.size(); i++) {
    String key = number.get(i);
    sumForNumber.put(key, sumForNumber.getOrDefault(key, 0)  + price.get(i));
}
1 голос
/ 22 апреля 2020

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

Map<String, Integer> result = new HashMap<>();
for (int i = 0; i < number.size(); i++) {
    String num = number.get(i);
    if (result.containsKey(num)) {
        Integer sum = result.get(num);
        result.put(num, sum + price.get(i));
    } else {
        result.put(num, price.get(i));
    }
}
1 голос
/ 22 апреля 2020

Вы можете использовать <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html" rel="nofollow noreferrer">HashMap</a><String, Integer>.

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