Troubles with addition of elements in ArrayList

I have a method searchMet, which goal is to return ObjectDTO
Then I call it for different objects , and I need to add returned objects to ArrayList listObj
But when I add a new object , previous ones change too. I don’t understand why. Any suggestions how to fix it ?

    public ObjectDTO searchMeth(String Name, int Quant, int len) {
        ObjectDTO best = new ObjectDTO();

            if (Objects.equals(this.name , Name) == true) {
                for (int q = 0; q < len; q++) {
                    if (this.songs[q] == Quant) {
                        best.name = this.name;
//                        System.out.println(best.name);
                        break;
                    }
                }
            }
             else best = null;

        return best;

List<Object> listObj = new ArrayList<>();
listObj.add(artist[0].searchMeth("LP", 10, len));
listObj.add(artist[1].searchMeth("TDG", 11, len));
listObj.add(artist[2].searchMeth("DG", 12, len));