【发布时间】:2019-04-11 20:57:45
【问题描述】:
这个标题一定很混乱,所以让我解释一下我的问题。
我有一个按我需要的方式排序的一维数组(我们称之为“ids”)。
然后,我有另一个二维数组,其中包含位置 0 的名称和位置 1 的 id(我们称之为“名称”)。
所以名称[0][0] = 名称,名称[0][1] = id。
让我澄清一下,这两个数组的长度不同!
我想做的是创建一个新的二维数组,它有一个名称和一个 ID,但像我的一维数组一样排序(id 的顺序与它们在那里的顺序相同)。
到目前为止我尝试过的是这个(我得到的只是一个充满空值的文本文件):
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();
}
【问题讨论】:
标签: java arrays file sorting search