You declare the array as [2][3] - a total of six elements:
String info[][] = new String[2][3];
Then you loop though each valid index:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
But ... you then try to access element [i + 1] which is not a valid index:
if (info[i][0].compareTo(info[i + 1][0]) > 0) {
because when i is 1, i + 1 is 2 and the valid indexes are zero and one only.
Hence the system complains: "Array index out of bounds"
Even then, you are trying to load three "users" who each have three "Items of information" so your array isn't going to be the right size anyway!
I would strongly suggest that instead of a 2D array, you create a class to keep related information in, and create a 1D array of the class instances.