Почему мой HashMap.containsKey(myKey) всегда возвращает false?

У меня есть программа с тремя объектами, один из которых представляет собой объект с 6 переменными, который представляет столбцы в ResulSet. У двух других есть 3 varialbes, и они совпадают с первым и последним 3 из моего другого 6 переменных объектов. У меня есть List<6 Var object>, который представляет собой записи ResultSet. Я пытаюсь проанализировать список из 6 объектов Var, чтобы сжать результирующий набор, чтобы у меня была только одна запись для каждого ключа моего меньшего объекта из 3 переменных. Я использую хэш-карту двух 3-х объектов var для достижения этой цели. ниже мой метод сам, который принимает список и возвращает тот же, но сжатый. ItemQuantities - это мой 6-ти переменный объект. CustomerProductClass - это мой ключ с 3 значениями, а Item - это ключ с 3 значениями, который я хочу быть уникальным в возвращаемом списке. Вы можете видеть, что я пытаюсь сравнить текущий HashMap, содержащий ключ текущего включенного объекта и пошаговую логику для того, должен ли он удалить существующую запись и поместить себя в нее или нет. Дайте мне знать, если вы понимаете, почему мое первое утверждение if всегда проходит, а остальные не достигаются.

public static List<ItemQuantities> getCondensedItemQuantities (List<ItemQuantities> fullItems) {
    Map<CustomerProductClass,Item> groupedProductQuantities = new  HashMap<CustomerProductClass,Item>();//making the map to put shit in

    for(int i = 0;i<fullItems.size();i++){
        ItemQuantities itemQuantities;
        itemQuantities = fullItems.get(i);
        Item item  = new Item(itemQuantities.itmType, itemQuantities.quant, itemQuantities.unitPrice);
        CustomerProductClass myCustomerProductClass = new CustomerProductClass(itemQuantities.customer,itemQuantities.location, itemQuantities.prodClass);


        if(!groupedProductQuantities.containsKey(myCustomerProductClass)){
            groupedProductQuantities.put(myCustomerProductClass,item);
        }
        else{
            if(item.Quantity > groupedProductQuantities.get(myCustomerProductClass).Quantity){
                groupedProductQuantities.remove(myCustomerProductClass);
                groupedProductQuantities.put(myCustomerProductClass, item);
            }
            if(item.Quantity == groupedProductQuantities.get(myCustomerProductClass).Quantity){
                if(item.UnitPrice > groupedProductQuantities.get(myCustomerProductClass).UnitPrice){
                    groupedProductQuantities.remove(myCustomerProductClass);
                    groupedProductQuantities.put(myCustomerProductClass, item);
                }
            }
        }
    }
    List<ItemQuantities> finalList= new ArrayList<ItemQuantities>();
    for(CustomerProductClass customerProductClass : groupedProductQuantities.keySet()){
        ItemQuantities itemQuantities = new ItemQuantities(customerProductClass.Customer,customerProductClass.Location,customerProductClass.ProductClass,groupedProductQuantities.get(customerProductClass).Name,groupedProductQuantities.get(customerProductClass).Quantity,groupedProductQuantities.get(customerProductClass).UnitPrice);
        finalList.add(itemQuantities);
    }
    return finalList; //return the hash map combined into a list of ItemQuantities.
}

0 ответов

Другие вопросы по тегам