怎样用java编写将数组中条件相同数据相加

数组R{[A,8],[B,10],[C,9],[B,4],[A,9],[D,15]},怎么可以让字母相同的数组合并,将数值相加,变成数组T{[A,17],[B,19],[... 数组R{[A,8],[B,10],[C,9],[B,4],[A,9],[D,15]},怎么可以让字母相同的数组合并,将数值相加,变成数组T{[A,17],[B,19],[C,9],[D,15]},求高手指教 展开
 我来答
http_p
推荐于2016-07-21 · TA获得超过1095个赞
知道小有建树答主
回答量:733
采纳率:100%
帮助的人:585万
展开全部
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test022 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<Item> list = new ArrayList<Item>();
        list.add(new Item("A", 8));
        list.add(new Item("B", 10));
        list.add(new Item("C", 9));
        list.add(new Item("B", 4));
        list.add(new Item("A", 9));
        list.add(new Item("D", 15));
        System.out.println(list);
        for (int i = 0; i < list.size(); i++) {

            Item ti = list.get(i);
            if (ti.getA() == null)
                continue;
            for (int j = i + 1; j < list.size(); j++) {
                Item tj = list.get(j);
                if (ti.getA().equals(tj.getA())) {
                    ti.setN(ti.getN() + tj.getN());
                    tj.setA(null);
                }
            }
        }
        for (Iterator<Item> it = list.iterator(); it.hasNext();) {
            Item t = it.next();
            if (t.getA() == null) {
                it.remove();
            }
        }
        System.out.println(list);

    }
}

class Item {
    String a;
    int n;

    public String getA() {
        return a;
    }

    public void setA(String a) {
        this.a = a;
    }

    public int getN() {
        return n;
    }

    public void setN(int n) {
        this.n = n;
    }

    public Item(String a, int n) {
        super();
        this.a = a;
        this.n = n;
    }

    @Override
    public String toString() {
        return "Item [a=" + a + ", n=" + n + "]";
    }

}
百度网友12ee0fd
推荐于2018-05-17 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:1961万
展开全部

使用Java 8 提供的stream 处理:

像求数组中偶数的和

        int[] data = {1,2,3,4,5,6,7,8,9,10,11,12};
        int r = Arrays.stream(data).filter(x -> x % 2 == 0).sum();
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
txlaok
2014-03-12 · TA获得超过1035个赞
知道小有建树答主
回答量:476
采纳率:100%
帮助的人:183万
展开全部
方法1:从第一个开始轮询,与后面所有比较,有相同的则相加,并去除相同元素;继续论需第二个,依次类推。
方法2:将数组的值添加到map中,字母做key,值做value。添加前先判断元素是否存在,存在则将原有的值取出与现有值相加并更新。依次类推。最后将map转换成数组。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天天好宝宝
2014-03-12 · TA获得超过373个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:493万
展开全部
[A,8]和[B,10]是什么数据结构?自定义结构体?还是哈希结构?
创建以个哈希结构H,基本就是扫描数组R里的每个元素,如果每个元素的Key值没有在H中出现过,那么就添加到H中,如果出现过则把Value值进行相加,最后按顺序将哈希结构H输出为数组类型即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hitzsf
2014-03-12 · TA获得超过2060个赞
知道大有可为答主
回答量:1741
采纳率:78%
帮助的人:1167万
展开全部
怎么可能是数组哦,不过这种结构 肯定是map,用map吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式