¿Cómo seleccionar valores duplicados de una lista en java?

Por ejemplo, mi lista contiene {4, 6, 6, 7, 7, 8} y quiero el resultado final = {6, 6, 7, 7}

Una forma es recorrer la lista y eliminar valores únicos (4, 8 en este caso).

¿Hay alguna otra forma eficiente en lugar de recorrer la lista? Hice esta pregunta porque la lista que estoy trabajando es muy grande? Mi codigo es

List<Long> duplicate = new ArrayList();
for (int i = 0; i < list.size(); i++) {
     Long item = (Long) list.get(i);
     if (!duplicate.contains(item)) {
          duplicate.add(item);
         }
     }

Respuestas a la pregunta(10)

Su respuesta a la pregunta