Problemas ao inserir registros duplicados do tipo BigDecimal[] em um HashSet

Olá pessoal,

estou com um problema ao tentar utilizar a implementação HashSet, eu não quero que minha lista possua registros duplicados, por isso estou usando o Set, porém o tipo que estou inserindo na lista é BigDecimal[] e acredito que a verificação para saber se o registro é duplicado ou não está ocorrendo primeiro pelo hashCode(), nesse caso, ele está permitindo incluir dois registros duplicados, que seriam new BigDecimal[]{5, 5}
Segue código abaixo:

Iterator<IntervaloPesquisaTO> it = getPesquisaPeriodicaTO().getListaIntervaloPesquisaTO().iterator();
Set<BigDecimal[]> collIntervaloPesquisa = new HashSet<BigDecimal[]>(); 
while(it.hasNext()){ 
     IntervaloPesquisaTO ipTO = it.next();
     collIntervaloPesquisa.add(
     new BigDecimal[]{ 
          ipTO.getNuNotaInicialPesquisa(), 
          ipTO.getNuNotaInicialPesquisa()});
}

Acredito que o meu problema esteja no New BigDecimal, pois cada vez que faço isso, é um hashCode diferente para esse objeto, e ele acaba que não está comparando os valores dentro do objeto.
Gostaria de saber o que posso fazer, ou utilizar alguma outra implementação, alguma sugestão.

Grato.

Pessoal,

meu problema está em sobrescrever o hashCode() e equals(), então mudei meu método, porém ainda não está dando certo, qual a forma correta de sobrescrever esses métodos para usar array?

Segue código abaixo:

Set<BigDecimal[]> collIntervaloPesquisa = new HashSet<BigDecimal[]>();
   for(IntervaloPesquisaTO ipTO: listaIntervaloPesquisa){
      collIntervaloPesquisa.add(new NotasPesquisa(
      ipTO.getNuNotaInicialPesquisa(),
      ipTO.getNuNotaInicialPesquisa()).notaPesquisaL);
   }
public class NotasPesquisa {
	
	BigDecimal[] notaPesquisaL = new BigDecimal[2];

	public NotasPesquisa(BigDecimal notaInicial, BigDecimal notaFinal){
		this.notaPesquisaL[0] = notaInicial;
		this.notaPesquisaL[1] = notaFinal;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + Arrays.hashCode(notaPesquisaL);
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		NotasPesquisa other = (NotasPesquisa) obj;
		if (!Arrays.equals(notaPesquisaL, other.notaPesquisaL))
			return false;
		return true;
	}

}

Se alguém puder ajudar.
Grato.