I am learning using binary search in Java. In an integer list it returns expected index but in char or a String list (code example) it returns a negative index, which is not expected (index = -4).

```
List<String> str = new ArrayList<>();
str.add("Hey");
str.add("Hi");
str.add("Bye");
int index = Collections.binarySearch(str,"Hi");
System.out.println(index);

```