java - 组合数组索引

标签 java arrays string int

我创建了两个数组。一张用于存储名称,一张用于存储销售。我试图将每个索引链接在一起,以便名称数组中的索引 1 将显示销售数组的索引 1 的值。我试图让它整理销售数组并返回最大销售额和带来这些销售额的人。所有值均由用户输入,包括数组的大小。

import java.util.Scanner;
import java.util.Arrays;


public class EmpArray {
    public static int employee(){

    Scanner input = new Scanner(System.in);

    int numemp;
    System.out.println("Enter how many employees to be compared: \n");
    numemp = input.nextInt();    

    String name[] = new String[numemp];
    int annsales[] = new int[numemp];
    int maxannsales;

    for (int i = 0; i < name.length; i++) {
         System.out.println("Enter your name: \n");
         String employeename = input.next();
         name[i] = employeename;
         System.out.println("\n");
    }
    for (int j = 0; j < annsales.length; j++) {
         System.out.println("Enter in your annual sales: \n");
         int employeesales = input.nextInt();
         annsales[j] = employeesales;
         System.out.println("\n");
    }       

        System.out.println("Employee Name: " + Arrays.toString(name));
        System.out.println("Total Sales: " + Arrays.toString(annsales));

        Arrays.sort(annsales);

        //look at page 456 of starting out with java and page 460 of the same book, p.464
        System.out.println("Top Salary is : $"+annsales[annsales.length-1]);
        maxannsales = annsales[annsales.length-1];    

        return maxannsales;
     }  
}

我做错了什么,我已经这样做了两周了。

最佳答案

您应该创建一个类来存储日期,而不是使用两个单独的数组。

public class Employee {

    private int sales;
    private String name;

    public Employee(String name, int sales){
        this.name = name;
        this.sales = sales;
    }
    public String getName(){
        return this.name;
    }
    public int getSales(){
        return this.sales;
    }
}

现在,当您从 Scanner 读取数据并将其传递给 Employee 构造函数时,将名称和销售额存储为局部变量。然后您可以创建一个 Employee array[]ArrayList<Employee>并在 Employee.getSales() 上对此数组/数组列表进行排序

像这样:

import java.util.Scanner;
import java.util.Arrays;

public class EmpArray {

        public static void main(String[] args){
            employee();
        }
        public static int employee(){

            Scanner input = new Scanner(System.in);

            int numEmp;
            System.out.println("Enter how many employees to be compared: ");
            numEmp = input.nextInt();    
            input.nextLine();
            Employee[] employees = new Employee[numEmp];

            for (int i = 0; i < numEmp; i++) {
                System.out.print("Enter your name: ");
                String employeeName = input.nextLine();
                System.out.println();
                System.out.print("Enter in your annual sales:");
                int employeeSales = input.nextInt();
                input.nextLine();
                System.out.println();
                //creates an Employee object based on the constructor defined in Employee
                Employee employee = new Employee(employeeName, employeeSales);
                employees[i] = employee;    
            }
            //initialize maxSeller to first employee
            Employee maxSeller = employees[0];
            for(int i = 0; i < employees.length; i++){
                //using the getters we created in Employee
                System.out.println("Employee Name: " + employees[i].getName());
                System.out.println("Total Sales: " + employees[i].getSales());
                System.out.println();
                //checks if employees[i] sold more than maxSeller
                if(maxSeller.getSales() < employees[i].getSales()){
                    maxSeller = employees[i];
                }
            }
            System.out.println();
            System.out.println("Top Seller: " + maxSeller.getName());
            System.out.println("Top Sales: " + maxSeller.getSales());

            return maxSeller.getSales();

        }
 }

关于java - 组合数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17224045/

相关文章:

java - 尝试安装 Charles Proxy 4.5.1 时出错 - "The bundled java installation is broken. Please uninstall and reinstall Charles"

C++:如何在堆栈上创建对象数组?

javascript - 如何通过不同数组中的值来命名数组中的值?

javascript - 如何遍历具有数组的对象并对值求和?

c - strcpy_s 是如何工作的?

c - 存储字符串的某些部分

java - 使用 Java 从 Lotus Notes 电子邮件中提取附件

Java - 如何找出哪个类文件有损坏的常量池?

java - 迁移到 Hibernate 5

string - 寻找 MEM 的高效算法