Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用bubble方法按递增顺序对数组排序。其他数组则位于不同的索引处_Java_Arrays - Fatal编程技术网

Java 使用bubble方法按递增顺序对数组排序。其他数组则位于不同的索引处

Java 使用bubble方法按递增顺序对数组排序。其他数组则位于不同的索引处,java,arrays,Java,Arrays,假设此程序读取包含项目、代码和价格的文件。我把它输出到屏幕上,在数组中表示它的索引。例如,项目[0]、代码[0]、价格[0]贯穿每个可能的索引。假设程序使用冒泡排序方法从最小到最大对代码值进行排序。到目前为止,我已经做对了。我的问题是,如何让这三个变量都存在。例如,如果wine、1298、8.99都在[3]的各自索引中,那么当代码值放入冒泡排序时,它将被交换到索引[0]。如何使价格和项目的索引也切换到索引[0]。这是我的问题。到目前为止,我们刚刚在课堂上学习了基本java,所以我还不知道任何高级

假设此程序读取包含项目、代码和价格的文件。我把它输出到屏幕上,在数组中表示它的索引。例如,项目[0]、代码[0]、价格[0]贯穿每个可能的索引。假设程序使用冒泡排序方法从最小到最大对代码值进行排序。到目前为止,我已经做对了。我的问题是,如何让这三个变量都存在。例如,如果wine、1298、8.99都在[3]的各自索引中,那么当代码值放入冒泡排序时,它将被交换到索引[0]。如何使价格和项目的索引也切换到索引[0]。这是我的问题。到目前为止,我们刚刚在课堂上学习了基本java,所以我还不知道任何高级的东西

import java.io.File;
import java.util.Scanner;
import java.util.*;

public class test2 {

    public static void main(String[] args) throws Exception {

        File file = new File("C:\\Users\\Isiah\\Desktop\\xfiles.txt");
        Scanner input = new Scanner(file);

        System.out.println("Item \t Code \t Price");

        String[] Item = new String[7];
        int[] Code = new int[7];
        double[] Price = new double[7];

        int c = 0;
        while (input.hasNext()) {
            Item[c] = input.next();
            Code[c] = input.nextInt();
            Price[c] = input.nextDouble();
            System.out.println(Item[c] + "\t" + Code[c] + "\t" + Price[c]);
            c++;

        }
        input.close();

        // Call Bubble Method

        bubbleSort(Code, Item, Price);

        System.out.println(" ");
        System.out.println("Code \t Item \t Price");



        for (int i = 0; i < Item.length; i++) {
            System.out.println(Code[i]);



        }
    }

    // Bubble Sort Method
    static void bubbleSort(int Code[], String[] Item, double Price[]) {
        int n = Code.length;
        for (int i = 0; i < n - 1; i++)
            for (int j = 0; j < n - i - 1; j++)
                if (Code[j] > Code[j + 1]) {
                    // swap temp and score[i]
                    int temp = Code[j];
                    Code[j] = Code[j + 1];
                    Code[j + 1] = temp;

                }
    }
}




Item     Code    Price
beer    1357    12.99
apple   2357    0.5
bread   2123    1.25
wine    1298    8.99
pants   3009    6.99
sugar   2111    2.69
socks   3123    11.89

Code     Item    Price
1298
1357
2111
2123
2357
3009
3123
导入java.io.File;
导入java.util.Scanner;
导入java.util.*;
公共类test2{
公共静态void main(字符串[]args)引发异常{
File File=新文件(“C:\\Users\\Isiah\\Desktop\\xfiles.txt”);
扫描仪输入=新扫描仪(文件);
System.out.println(“项目\t代码\t价格”);
字符串[]项=新字符串[7];
int[]代码=新int[7];
double[]价格=新的double[7];
int c=0;
while(input.hasNext()){
项[c]=input.next();
代码[c]=input.nextInt();
Price[c]=input.nextDouble();
System.out.println(项目[c]+“\t”+代码[c]+“\t”+价格[c]);
C++;
}
input.close();
//调用气泡法
bubbleSort(代码、项目、价格);
System.out.println(“”);
System.out.println(“代码\t项目\t价格”);
对于(int i=0;i代码[j+1]){
//交换温度和分数[i]
int temp=代码[j];
代码[j]=代码[j+1];
代码[j+1]=温度;
}
}
}
项目代码价格
啤酒135712.99
苹果23570.5
面包21231.25
葡萄酒1298.99
裤子3009 6.99
糖21112.69
袜子3123111.89
代码项价格
1298
1357
2111
2123
2357
3009
3123

使用当前代码,您必须交换所有数组中的项。因此,当您交换
code[i]
code[j]
时,也交换
Item[i]
Item[j]
Price[i]
Price[j]

一种更面向对象的方法是用
code
Item
Price
字段定义一个类,比如说,
Thing

class Thing {
  int code;
  String item;
  double price;
}

然后对这些数组进行排序:
Thing[]

使用当前代码,您必须交换所有数组中的项。因此,当您交换
code[i]
code[j]
时,也交换
Item[i]
Item[j]
Price[i]
Price[j]

一种更面向对象的方法是用
code
Item
Price
字段定义一个类,比如说,
Thing

class Thing {
  int code;
  String item;
  double price;
}

然后对这些数组进行排序:
Thing[]

将值封装到单个对象中是明智的解决方案,如果不可能,那么您可能需要一个“代理”数组作为索引查找到其他数组中,将值封装到单个对象中是明智的解决方案,如果这是不可能的,那么你可能需要一个“代理”数组,它充当到其他数组的索引查找@IsiahJones没有什么能阻止你在课堂之外学习东西。谢谢你的建议,它已经启动并运行了@IsiahJones没有什么能阻止你在课外学习。谢谢你的建议,让它开始运行吧!