java - 携带另一个元素并打印出来
问题描述
瓷砖没有澄清我的问题,所以这是我的程序的一部分:
public static void selectionsort(int[] userID, double[] donation, PrintWriter output) {
int min, swap;
for (int i = 0; i < userID.length - 1; i++) {
min = i;
for (int m = i + 1; m < userID.length; m++) {
if (userID[m] < userID[i]) {
min = m;
swap = userID[min];
userID[min] = userID[i];
userID[i] = swap;
}
}
output.println(userID[i] + " " + donation[i]);
}
}
我的数组如下:
456 250.0
123 175.34
345 123.06
但是当我的方法去
output.println(userID[i]+" "+donation[i]);
它打印出来是这样的:
123 250.0
345 175.34
456 123.06
我想保持身份证号码和捐款的匹配。例如,456 应该始终与 250.00 相关联,无论 456 移动到哪里。我如何解决它?
解决方案
问题是因为在该方法中,只有userID
数组被排序,而donation
数组没有被相应地打乱。userID
并且数组元素和数组元素之间没有其他映射donation
,因此两个数组元素的打印都不会显示先前的关联。
因此,在您的方法中,每当您交换userID
数组元素的位置时,您还必须交换相应donation
数组元素的位置。这可以如下完成:
public static void selectionsort(int[] userID, double[] donation, PrintWriter output) {
int min, swap;
for (int i = 0; i < userID.length - 1; i++) {
min = i;
for (int m = i + 1; m < userID.length; m++) {
if (userID[m] < userID[i]) {
min = m;
swap = userID[min];
userID[min] = userID[i];
userID[i] = swap;
swap=donation[min];
donation[min]=donation[i];
donation[i]=swap;
}
}
output.println(userID[i] + " " + donation[i]);
}
}
推荐阅读
- rest - 无法更新/添加/删除用户到 Ranger 中的组
- android - Flowable订阅在插入记录后获取空列表
- spring - Spring Pagination sorting with cases
- security - RSA 公钥以什么格式通过 Internet 发送?
- tsql - 联结表上的 tsql update trigger1 更新主表,主表更新 trigger2 尝试更新主表中同一行上的其他列 - 失败
- javascript - 如何在不损失质量的情况下扩大图像?
- python - 如何
从 Python 爬取中删除 - express - Vue/Vuex - 如何在路由更改后保持用户身份登录
- firebase - Flutter for Auth 的 Firebase UI
- java - 在 Kotlin 中与 @RequestParam 一起使用时,自定义 HashMap 类获取参数类型不匹配