Es una operación llamada ternaria, viene de la época de C y era una de las muchas formas que tenía C de escribir código sucio, aunque reconozco que desde que me he habituado a usarlo no puedo vivir sin él.
La operación lo que hace es devolver el elemento a la derecha del ? si lo que está a la izquierda es true, en caso de que sea false devuelve lo que está a la derecha del :
En este caso, si sectionHeader.contains(position) es true devuelve TYPE_SEPARATOR, y si es false devuelve TYPE_ITEM
