JDK 8 : removeIf() method of Collection added in JDK 8

I'm executing the following piece of code, to remove the odd length String from the list, it is working fine. But I want to know what is happening behind the scene.

  private void exercise2() {
      List<String> list = new ArrayList<>(Arrays.asList(
      "alpha", "bravo", "charlie", "delta", "echo", "foxtrot"));

      list.removeIf(s -> (s.length() & 1) == 1);
      System.out.println(list.toString());
}

I can execute the above code in another way, replacing the fourth line by,

list.removeIf(s -> (s.length()%2 != 0));

I want to know what is mean by, s -> (s.length() & 1) == 1 , in the fourth line of the above source code.