I have some entity class

```
class Data{
    private String quoteID;
    private String bidOrOffer;
    private float price;
    private long   volume;
    private Date   createDate;

    public Data(String quoteID, String bidOrOffer, float price, long volume) {
        this.quoteID = quoteID;
        this.bidOrOffer = bidOrOffer;
        this.price = price;
        this.volume = volume;
        createDate = new Date();
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 13 * hash + Objects.hashCode(this.quoteID);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Data other = (Data) obj;
        if (!Objects.equals(this.quoteID, other.quoteID)) {
            return false;
        }
        return true;
    }
}

```

and I push some elements into `TreeSet` whit special order

```
Comparator<Data> offerOrder = (Data o1, Data o2) -> {
    if(o1.equals(o2))
        return 0;      
    if(o1.getPrice() == o2.getPrice()
            && o1.getVolume() == o2.getVolume()){
        return o1.getCreateDate().after(o2.getCreateDate())? 1:-1;
    }
    if(o1.getPrice() == o2.getPrice()){
        return o1.getVolume() > o2.getVolume()? 1:-1;
    }
    if(o1.getPrice() > o2.getPrice())
        return 1;
    else
        return -1;
};

Set<Data> treeSet = new TreeSet<>(offerOrder);
treeSet.add(new Data("Q1", "OFFER", 1.32f, 1000000));
treeSet.add(new Data("Q6", "OFFER", 1.32f, 1000000));
treeSet.add(new Data("Q7", "OFFER", 1.33f, 200000));

```

The main goal of this task it is remove and update some data by `quoteID`
but if I do this

```
treeSet.contains(new Data("Q7", "OFFER", 0, 0)); //return false

```

thereafter method remove doesn't work too.

Any ideas?