@Override
    public int indexOf(Object o) {
        if (o == null) {
            super.indexOf(o);
        } else if (o instanceof Data) {
            Data d = (Data) o;
            if (d.getKey() == null) return super.indexOf(o);
            for (int i = 0; i < size(); i++)
                if (d.getKey().equals(get(i).getKey()))
                    return i;
        }
        return -1;
    }