找出java和android中常见的数组元素



嗨在我的代码中,我有以下数组:-

String[]类别={租金、礼品、礼品};

float[] Amount = {14.76, 15.0, 20.0};

我的问题是我想从第一个数组中找到相同的元素,因为有"礼物"。根据第二个转换。因此输出将是:-

类别={租金、礼品};

Amount = {14.76, 35.0};

谁能告诉我如何在java中实现这个?

您应该在这里使用Map: Category值应该映射到Amount值(我会根据Java编码风格以小写字母命名它们):

Map<String, Float> costs = new HashMap<>();
for (int i = 0; i < category.length; ++i) {
    Float initial = costs.get(category[i]);
    if (initial == null)
        initial = 0f;
    costs.put(category[i], initial + amount[i]);
}

在这些动作之后,costs映射将包含类似(Rental -> 14.76, Gifts -> 35.0)

的内容

要返回数组(不确定,为什么它可能有用),您应该只迭代Map的项并将它们写入数组:

category = new String[costs.size()];
amount = new Float[costs.size()];
int i = 0;
for (Map.Entry<String, Float> entry: costs.entrySet()) {
    category[i] = entry.getKey();
    amount[i] = entry.getValue();
    ++i;
}

最新更新