Resultado

HashSet hash=new HashSet();
       
        StringBuffer x=new StringBuffer("A");
        StringBuffer x2=new StringBuffer("A");
        hash.add(x);
        hash.add(x2);
        
        System.out.print(hash.size());

Ai turma resultado?

Se não me engano StringBuffer não sobrescreve o método equals, então escreveria 2.

Exato, StringBuffer não sobrescreve o equals logo os dois objetos são considerados diferentes e são adicionados. Segundo o javadoc, segue a assinatura do método add do HashSet:

Pra saber se o objeto está presente ou não ele usa o equals, se fossem Strings por exemplo, os dois objetos seriam considerados iguais e o size seria 1.

Lembrando que HashSet é uma implementação de Set e não aceita objetos repetidos!