Этот заголовок должен вводить в заблуждение, поэтому позвольте мне объяснить мою проблему.
У меня есть одномерный массив (назовем его "ids"), который отсортирован так, как мне нужно.
Затем у меня есть еще один 2D-массив, который содержит имя в позиции 0 и идентификатор в позиции 1 (назовем его «имена»).
Итак, имена [0] [0] = имя, имена [0] [1] = идентификатор.
Позвольте мне уточнить, что 2 массива не имеют одинаковую длину!
Что я хочу сделать, так это создать новый 2D-массив, который имеет имя и идентификатор, но отсортирован как мой одномерный массив (идентификаторы в том же порядке, как и там).
То, что я до сих пор пробовал, это (и все, что я получаю, это текстовый файл, полный нулей):
for (int i = 0; i < ids.length; i++){
String equal = ids[i];
for (int j = 0; i < users.length; i++) {
if(users[j][1].equals(equal)) {
sortedArray[i][0] = users[j][0];
sortedArray[i][1] = equal;
}
}
}
for (int i=0; i<sortedArray.length; i++){
writer.println(sortedArray[i][0]+"\t"+sortedArray[i][1]);
}
Это может быть бесполезно, но так как я создаю этичитая файлы, это остальная часть моего кода:
BufferedReader reader;
BufferedReader reader2;
PrintWriter writer;
String[][] users = new String[39431][2];
String[] ids = new String[22890];
String[][] sortedArray = new String[22890][2];
reader = new BufferedReader(new FileReader("allConnectedUsers.txt"));
reader2 = new BufferedReader(new FileReader("ids.txt"));
String sorted = "sortedNamesWithIDs.txt";
writer = new PrintWriter(sorted, "UTF-8");
String usersline = reader.readLine();
String idsline = reader2.readLine();
for (int i = 0; i < users.length; i++) {
String splittedLine[] = usersline.split(" ");
String name = splittedLine[0];
String id = splittedLine[1];
users[i][0] = name;
users[i][1] = id;
usersline = reader.readLine();
}
for (int i = 0; i < ids.length; i++) {
String onlyIDs;
onlyIDs = idsline;
ids[i] = onlyIDs;
idsline = reader2.readLine();
}