如何为指定的索引添加数组值而不替换它?

时间:2015-10-01 03:49:39

标签: java arrays loops

这只是一种方法类别。

        System.out.print("1. Add Customer..............................................P500.00\n");
        case 1://Add Customer

            for (int x = 0; x < CustomerInfo.length; x++){// Start For Records
                x++;
                System.out.print("\nConfimation Number: ");
                CustomerInfo[x][0][0][0][0][0] = br.readLine();
                System.out.print("\nFirst Name: ");
                CustomerInfo[x][1][0][0][0][0] = br.readLine();
                System.out.print("Last Name: ");
                CustomerInfo[x][0][1][0][0][0] = br.readLine();
                System.out.print("Guest: ");
                CustomerInfo[x][0][0][1][0][0] = br.readLine();
                System.out.print("Night: ");
                CustomerInfo[x][0][0][0][1][0] = br.readLine();
                System.out.print("Accommodation: ");
                CustomerInfo[x][0][0][0][0][1] = br.readLine();
                System.out.println();
                break;
            }

            break;


            for (int x = 0; x < CustomerInfo.length; x++){

                if (CustomerInfo[x][0][0][0][0][0] != null){
                if (CustomerInfo[x][1][0][0][0][0] != null){
                if (CustomerInfo[x][0][1][0][0][0] != null){
                if (CustomerInfo[x][0][0][1][0][0] != null){
                if (CustomerInfo[x][0][0][0][1][0] != null){
                if (CustomerInfo[x][0][0][0][0][1] != null){


                System.out.print("\n|---------------------------------------------------------------------|\n");
                System.out.print("\n\nConfirmation Number:      |--------------->  " +   CustomerInfo[x][0][0][0][0][1]);
                System.out.print("\nGuest Name:                 |--------------->  " + CustomerInfo[x][1][0][0][0][0] + " " + CustomerInfo[x][0][1][0][0][0]);
                System.out.print("\nNumber Of Guest:            |--------------->  " + CustomerInfo[x][0][0][1][0][0]);
                System.out.print("\nNumber Of Nights:           |--------------->  " + CustomerInfo[x][0][0][0][1][0]);
                System.out.println("\nAccommodations:               |--------------->  " + CustomerInfo[x][0][0][0][0][1]);

我是第一次添加客户,如果我第二次添加客户,则第一次没有记录客户。

我注意到问题是增量。

 for (int x = 0; x < CustomerInfo.length; x++) 

因为我之后使用了休息。

break;

但我想要完成的是添加客户,当我添加另一个时,前一个应该与新的一起显示。

我问的是我想一个接一个地添加更多数组值。或者像我在我的'[x]'之后添加值我想再次添加,但不是同时添加

有什么建议吗?

我真的需要你的帮助。

2 个答案:

答案 0 :(得分:1)

您可能需要声明CustomerInfo如下:

String[] customerInfo = new String[6];

并拥有每个数组 - 保存一个客户的信息,其中first-name将存储在第一个索引上,last-name存储在第二个索引上等等。

通过执行类似CustomerInfo[][][][][][]的操作 - 代码尝试声明/访问多维(6维)数组 - 这可能不是你想要的。

现在Java是一种面向对象的编程语言,因此您应该尝试设计代码以使用对象,而不是多维数组 - 它将使您的代码更易于阅读和维护。

首先,创建一个CustomerInfo类:

class CustomerInfo {
    String confirmationNumber;
    String firstName;
    String lastName;
    String guest;
    String night;
    String accommodation;

    public CustomerInfo(String confirmationNumber,
                        String firstName,
                        String lastName,
                        String guest,
                        String night,
                        String accommodation) {
        this.confirmationNumber = confirmationNumber;
        this.firstName = firstName;
        this.lastName = lastName;
        this.guest = guest;
        this.night = night;
        this.accommodation = accommodation;
    }
}

现在你有这样一个&#34;持有人&#34;对于数据,您可以阅读用户输入并将其保存到CustomerInfo

列表中
public static void main(String[] args) {
    ...
    List<CustomerInfo> customerInfos = new ArrayList<CustomerInfo>();
    for (int i = 0; i < customerInfos.length; i++){// Start For Records
        System.out.print("\Confirmation Number: ");
        String confirmationNumber = br.readLine();
        System.out.print("\nFirst Name: ");
        String firstName = br.readLine();
        System.out.print("Last Name: ");
        String lastName = br.readLine();
        System.out.print("Guest: ");
        String guest = br.readLine();
        System.out.print("Night: ");
        String night = br.readLine();
        System.out.print("Accommodation: ");
        String accommodation = br.readLine();
        CustomerInfo customer = new CustomerInfo(confirmationNumber, firstName, lastName, guest, night, accommodation);
        customerInfos.add(customer);
        System.out.println();
    }
}

如果您想做得更好,请在顶部添加一些验证,例如,如果guest是一个数字,您可以将其读作int或尝试将其解析为{{ 1}} - 如果用户输入了一些奇怪的内容 - 显示正确的错误消息。等等。

答案 1 :(得分:0)

    case 1://Add Customer

        for (int x = 0; x < CustomerInfo.length; x++){// Start For Records
            **x++;**

你的循环有问题。在启动循环和完成循环两次时增加增量变量。

这意味着您不是从0开始,而是从1开始。但是您想检查是否有客户在0。