Unir 2 arrays somando uma variavel

Boa tarde Pessoal, alguem sabe resolver isso!!

Eu tenho 2 arrays do objeto Agregado por exemplo:

Agregado = {codigoVendedor: number; nomeVendedor: string, quantidadeVendida: number};

agregados1 = [{01, ‘Joao’, 50}, {02, ‘Maria’, 20}];

agregados2 = [{01, ‘Joao’, 20}, {02, ‘Maria’, 10}, {03, ‘Pedro’, 15}];

Eu preciso que faça um comando para unir eles somando, ficando desta maneira:

resultado = [{01, ‘Joao’, 70}, {02, ‘Maria’, 30}, {03, ‘Pedro’, 15}];

Se alguem puder me ajudar,

Obrigado

faz 2 for each, quando o códigoVendedor do objeto do agregados1 for igual ao objeto do agregados 2 você soma e adiciona em uma nova Arraylist, só cria uma condição para verificar se essa nova ArrayList já não contêm um elemento com esse codigoVendedor.

Boa tarde amigo. Espero que te ajude

public void test() {
    //agregados1 = [{01, ‘Joao’, 50}, {02, ‘Maria’, 20}];
    Agregado[] agregados1 = {new Agregado(1, "Joao", 50), new Agregado(2, "Maria", 20)};
    //agregados2 = [{01, ‘Joao’, 20}, {02, ‘Maria’, 10}, {03, ‘Pedro’, 15}];
    Agregado[] agregados2 = {new Agregado(1, "Joao", 20), new Agregado(2, "Maria", 10), new Agregado(3, "Pedro", 15)};
    //Eu preciso que faça um comando para unir eles somando, ficando desta maneira:
    Agregado[] resultado = somarAgregado(agregados1, agregados2);
    //resultado = [{01, ‘Joao’, 70}, {02, ‘Maria’, 30}, {03, ‘Pedro’, 15}];
    Arrays.asList(resultado).forEach(ag -> System.out.println(ag.toString()));
}

public Agregado[] somarAgregado(Agregado[] agregados1, Agregado[] agregados2) {
    //cria lista para recolher os resultados
    List<Agregado> lista = new ArrayList();
    //inverte as listas para que a primeira seja sempre a maior
    if (agregados1.length < agregados2.length) {
        Agregado[] temp = agregados1;
        agregados1 = agregados2;
        agregados2 = temp;
    }
    //loop que passa toda a lista 1
    l1:
    for (Agregado ag1 : agregados1) {
        //loop que passa toda a lista 2
        for (Agregado ag2 : agregados2) {
            //verificação de igualdade entre os objetos
            if (ag1.getCodigoVendedor().equals(ag2.getCodigoVendedor())
                    && ag1.getNomeVendedor().equals(ag2.getNomeVendedor())) {
                //cria novo objeto e soma as quantidades adicionando a lista
                Agregado nag = new Agregado();
                nag.setCodigoVendedor(ag1.getCodigoVendedor());
                nag.setNomeVendedor(ag1.getNomeVendedor());
                nag.setQuantidadeVendida(ag1.getQuantidadeVendida().doubleValue() + ag2.getQuantidadeVendida().doubleValue());
                lista.add(nag);
                //volta para o primeiro loop
                continue l1;
            }
        }
        //adiciona objeto que não existir na segunda lista
        lista.add(ag1);
    }
    //retorna lista transformada em array contendo o resultado
    return lista.toArray(new Agregado[lista.size()]);
}

public class Agregado {

    private Number codigoVendedor;
    private String nomeVendedor;
    private Number quantidadeVendida;

    public Agregado() {
    }

    public Agregado(Number codigoVendedor, String nomeVendedor, Number quantidadeVendida) {
        this.codigoVendedor = codigoVendedor;
        this.nomeVendedor = nomeVendedor;
        this.quantidadeVendida = quantidadeVendida;
    }

   //Getters and Setters

    @Override
    public String toString() {
        return "Agregado{" + "codigoVendedor=" + codigoVendedor + ", nomeVendedor=" + nomeVendedor + ", quantidadeVendida=" + quantidadeVendida + '}';
    }

}

Muito obrigado… Villagram