首页 > 解决方案 > 搜索一系列集合

问题描述

我不知道以前是否有人问过这个问题,但我试图在发布之前找到答案,但没有运气。

我有四个对象,比如说地板、冰箱、碗和苹果。根据需要添加冰箱、碗和苹果。每个苹果都有一个保质期。地板有一个set<Fridge>,冰箱有一个set<bowl>,碗有一个set<apple>。当我向集合中添加一个苹果时,我想检索之前添加的最后一个苹果。我尝试了以下代码,但它无济于事,因为它一直返回 false。

public boolean previousAppleExist(Date aDate){
    boolean found = false;
    Date previousDay = new Date(aDate.aPreviousDate(aDate)); //returns a day before
    String expiryDate = previousDay.getDate();//returns a String in format dd/mm/yyyy
    for(Fridge fridge: fridgeSet ){
        if (this.fridgeExist(expiryDate)){
            for (Bowl bowl: bowlSet){
                if (this.existingFridge(expiryDate).bowlExist(expiryDate)){
                    for(Apple apple: appleSet){
                        if(this.existingFridge(expiryDate).
                           existingBowl(expiryDate).appleExist(expiryDate)){
                            found = true;
                            break;
                        }
                        else {
                            previousDay = new Date(previousDay.
                                          aPreviousDate(previousDay));
                            startDate = previousDay.getDate();
                        }
                    }
                }
                else {
                    previousDay = new Date(previousDay.
                                  aPreviousDate(previousDay));
                    expiryDate = previousDay.getDate();
                }
            }
            break;
        }
        else {
            previousDay = new Date(previousDay.aPreviousDate(previousDay));
            expiryDate = previousDay.getDate();
        }
    }
    return found;
}

我究竟做错了什么?

标签: javacollections

解决方案


推荐阅读