Arraylist com 2 filtros

Pessoal oque eu estou tentando fazer é o seguinte, tenho uma tabela que armazena os orçamentos cotados, eu pesquiso pelo código do produto que foi orçado e ele me retorna todas empresas que foi cotado junto com os valores passados por cada empresa. mas eu preciso fazer uma busca onde me retorna as o código do produto e somente a empresa que estiver selecionada assim como os valores passados por essa empresa.

a pesquisa por código está assim:

private void pesquisar() {
    try {
        listarContatos();
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Ploblemas no campo de pesquisa");
    }
}

// pesuisa por Código do Job
public void listarContatos() throws SQLException {
daoOrcamento dao = new daoOrcamento();
contatos = dao.getLista(jTCodJob.getText());
mostraPesquisa(contatos);
}

private void mostraPesquisa(List<logicoOrcamento> contatos) {
    while (tmContato.getRowCount() > 0) {
        tmContato.removeRow(0);
    }
    if (contatos.size() == 0) {
    } else {
        String[] linha = new String[]{null, null, null, null, null};
        for (int i = 0; i < contatos.size(); i++) {

            tmContato.addRow(linha);
            tmContato.setValueAt(contatos.get(i).getCodJob(), i, 0);
            tmContato.setValueAt(contatos.get(i).getQtd(), i, 1);
            tmContato.setValueAt(contatos.get(i).getValor(), i, 2);
            tmContato.setValueAt(contatos.get(i).getData(), i, 3);
            tmContato.setValueAt(contatos.get(i).getEmpresa(), i, 4);
        }
    }
}