Arrays.asList.contains zwraca false, mimo występowania danej liczby

0

Cześć!

Kod wygląda mniej więcej tak:

public class Tablica {
	private int[] numbers;
	//////

 	public void deleteAllRepetitions(int number) {
		this.numbers = Arrays.stream(numbers)
                	.distinct()
                	.toArray();
	}

Test dla tablicy:

[1, 2, 3, 10, 10, 10, 0, 0, 0, 0]

zwraca

[1, 2, 3, 10, 0]

ale sprawdzenie w ten sposób:

    @org.junit.Test
    public void deleteAllRepetitionsOf10() throws Exception {
        tablica.deleteAllRepetitions(10);
        System.out.println(Arrays.toString(tablica.getNumbers()));
        assertTrue(Arrays.asList(tablica.getNumbers()).contains(10));
    }

nie przechodzi. Co ciekawe ręczne sprawdzenie za pomocą

assertTrue(tablica.getNumbers()[3] == 10);

przejdzie.

Jakieś pomysły dlaczego?

2

Zdradzony przez varargs.

Arrays.asList(...) w twoim przypadku tworzy Listę jednoelementową, której jedynym elementem jest tablica intów.
Dalej poradzisz sobie sam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1