数组和数组列表的问题

时间:2014-03-08 18:54:14

标签: java arrays

这是课堂作业。她让我们分两部分使用数组和数组列表。基本上她向我们展示了如何使用arraylist比阵列更容易。

我在使阵列部件工作时遇到了很多麻烦。

  1. 使用main方法创建一个名为CustomerLister1的类,该方法实例化一个名为customerName的String对象数组。该数组应该有六个String对象的空间。使用初始化列表将以下名称放入数组中:

    • Chris
    • Lois
    • 梅尔
    • 彼得
    • 的Stewie
  2. 编写增强的for循环以显示名称数组。最后一个数组元素显示什么?为什么这么值?

  3. 将字符串“Meg”和“Brian”分别添加到索引3和4中,以便该数组包含以下元素:

    • Chris
    • Lois
    • 梅尔
    • 梅尔
    • Brian
    • 彼得
    • 的Stewie
  4. 编写增强的for循环以显示名称数组。

  5. 编写第二个传统的for循环,检查字符串“Meg”的每个元素,如果在数组中找到,则删除它,移动剩余的元素,并显示名称数组。是否从阵列中正确删除了“Meg”的实例?

  6. 这是我的代码

    public class CustomerLister1
    {
    
    public static void main(String[] args)
    {
    String[] customerName = new String[7];
    customerName[0] = "Chris";
    customerName[1] = "Lois";
    customerName[2] = "Meg";
    customerName[3] = "Peter";
    customerName[4] = "Stewie";
    
    for (int i = customerName.length-1;i > 3; i--)
    {
        customerName[i] = customerName[i - 2];
    }
    customerName[3] = "Meg";
    customerName[4] = "Brian";
    
    for (int m = 0; m <= customerName.length-1; m++)
    {
    if(customerName[m].equals("Meg"))
    {
    for(int j = m;j < customerName.length;j++)
    {
        if(j < customerName.length-2) {
            customerName[j]= customerName[j+1];
        } else {
            customerName[j]="";
        }
    }
    m--;
    }
    
    for (String element : customerName)
    {
        System.out.println(element);
    }
    
    }
    }
    }
    

    输出错误虽然它删除了两个megs然后添加brian peter然后两个空行然后stewie。我需要删除空行并连续打印输出。

1 个答案:

答案 0 :(得分:0)

这是一个解决方案。它使用一个额外的计数器来知道何时应该将""放在数组中而不是移动下一个元素。

int customerSize = 7;
for (int m = 0; m <= customerName.length-1; m++)
{
    if(customerName[m].equals("Meg"))
    {
        customerSize--;
        for(int j = m;j < customerName.length;j++)
        {
            if(j >= customerSize)
                customerName[j] = "";
            else
                customerName[j] = customerName[j+1];    
        }
        m--;

        for (String element : customerName)
        {
            if(! element.equals(""))
                System.out.println(element);
        }
        System.out.println();
    }   
}

输出:

Chris
Lois
Meg
Brian
Peter
Stewie

Chris
Lois
Brian
Peter
Stewie