Lambda Java 8 - Stream().reduce()

Gostaria que alguem por favor , tenho dois problemas para resolver, o primeiro seria em um vetor, usando lambada ver com é o número que não se repete, tenho um codigo que fiz em python que funciona mas não consegui converter, vou colocar os codigo python e o codigo java:

Python

vetor = [1,2,1,5,2,7,5,3,3] #valores de entrada

vetXor = reduce(lambda x, y: x ^ y, vetor)

usando xor , exclusivo bit a bit para exclusão, como o xor exclui os números iguais , fazendo a excluso bit a bit, nesse caso e possível ser usado.

print ("Valores antes de aplicar XOR", vetor)
print ("Apos aplicar XOR, retorno do valor unico :",vetXor)

Em java eu cheguei nisso por enquanto:

Integer[] vetor = {1,2,1,5,2,7,5,3,3};
	
	
List lista = new ArrayList<>(Arrays.asList(vetor));
lista.forEach(r -> System.out.print(r + " "));
	
lista.stream().reduce((x, y) -> x ^ y);

ou

lista.stream().reduce(Optional.empty(), (x, y) -> x ^ y);

Segundo problema: Usando o lambda gostaria de ver qual é o primeiro numero que se repete usando o stream

Essa sua soluçao em python nao funciona para todos os casos, tente [1,2,3,3] por exemplo.

Para achar o primeiro duplicado, você pode usar um Set.
O Set tem um método add que retorna True quando o valor foi inserido (porque nao existia antes) e retorna False quando o valor já existe.
Se você adicionar cada valor do seu array no set, o primeiro que retornar false, você sabe que é o primeiro repetido.

Mas será que essa seria a melhor implementação, mesmo usando os recursos novos no java 8???

package br.com.alura.java8;

import java.util.LinkedHashSet;
import java.util.Set;

public class PrimeiraRepeticao {

public static void main(String[] args) {
	Integer[] vetor = { 1, 2, 1, 5, 2, 7, 5, 3, 3 };

	Set<Integer> set = new LinkedHashSet<>();

	for (int i = 0; i < vetor.length; i++) {
		if (!set.add(vetor[i])) {
			System.out.println(vetor[i]);
			break;
		}
	}
    }
}

Melhor em qual sentido?

Na verdade, a minha sugestao nao impediria você de usar lambda. É só implementar essa lógica usando streams.

Como seria um stream que itera um set e faz a verificação do add???