Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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 试图打印出;“最佳客户”;谁花的钱最多_Java_Arrays_Arraylist_Max - Fatal编程技术网

Java 试图打印出;“最佳客户”;谁花的钱最多

Java 试图打印出;“最佳客户”;谁花的钱最多,java,arrays,arraylist,max,Java,Arrays,Arraylist,Max,这是我到目前为止得到的。我可以打印出最高金额,但我不知道如何将客户姓名与他们的销售额联系起来,然后将他们的姓名与总额一起打印出来 import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class HW5 { public static void nameOfBestCustomer(ArrayList<Double> sales, ArrayLis

这是我到目前为止得到的。我可以打印出最高金额,但我不知道如何将客户姓名与他们的销售额联系起来,然后将他们的姓名与总额一起打印出来

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class HW5 {
public static void nameOfBestCustomer(ArrayList<Double> sales,
    ArrayList<String> customers) {
}

public static void main(String[] args) {
    ArrayList<Double> sales = new ArrayList<Double>();
    ArrayList<String> customer = new ArrayList<String>();
    int[][] BestCustomer = new int[1][10];

    Scanner in = new Scanner(System.in);
    System.out.print("Total Number of Customers: ");
    int num = in.nextInt();

    for (int i = 0; i < num; i++) {
        System.out.print("Enter name of customer " + (i + 1) + ": \n");
        customer.add(in.next());

        System.out.print("Total amount for customer " + (i + 1) + ": \n");
        sales.add(in.nextDouble());
    }

    double maximum = Collections.max(sales);
    System.out.println("The Best Customer is " + customer
            + "with a purchase of ");
    System.out.println(String.format("$%.2f", maximum));
}
}
import java.util.ArrayList;
导入java.util.Collections;
导入java.util.Scanner;
公共级HW5{
贝斯特客户的公共静态无效名称(ArrayList sales,
ArrayList(客户列表){
}
公共静态void main(字符串[]args){
ArrayList sales=新建ArrayList();
ArrayList客户=新的ArrayList();
int[]BestCustomer=新int[1][10];
扫描仪输入=新扫描仪(系统输入);
系统输出打印(“客户总数:”);
int num=in.nextInt();
for(int i=0;i
您使用的是“平行”列表,即两个单独的列表,预期彼此以1:1的比例对应:

ArrayList<Double> sales = new ArrayList<Double>();
ArrayList<String> customer = new ArrayList<String>();
现在,您可以维护单个阵列:

ArrayList<Transaction> transactions = new ArrayList<Transaction>();
然后你必须有一种方法来比较两个
事务
s;您的选择是:

  • 执行
    事务
  • 定义可以比较销售金额的

  • 我将把这些细节留给您作为练习-查看关于的官方教程,它简短、简洁,并且包含好的示例。一旦您这样做,您现在就有了使用
    Collections.max()
    (用于选项2或用于选项1)的基础结构,
    max()
    现在将直接返回
    交易
    对象,该对象包含金额和客户名称。

    覆盖了自定义对象吗?我假设HW5是作业5?因为您使用的是平行列表,所以请使用您的最高金额来获得客户列表的相应索引。使用循环来检查销售中的值。如果找到最大销售额,则保存该索引
    i
    。然后打印出该索引的客户和该索引的销售额<代码>销售。获取(i)
    客户。获取(i)
    之类的东西。非常感谢!我想我开始明白该怎么做了,但以防万一,你能检查一下我的部分新代码吗?对于(int i=0;iArrayList<Transaction> transactions = new ArrayList<Transaction>();
    Transaction t = new Transaction();
    t.sale = ...;
    t.customer = ...;
    transactions.add(t);