如何为菜单程序编写删除方法

时间:2014-04-24 21:04:32

标签: java arrays methods

我一直在研究如何为我正在编写的菜单(面向对象)程序编写删除方法。该菜单为用户提供了删除程序中输入的姓氏的选项。我完全坚持这一部分!如果你们/ gals能给我一个简单的删除方法,我将不胜感激! 非常感谢!

这是我目前为止添加名称的代码:

public static int addOne(String theArray[], int location, String theName, int noofvalues)
{
    int step;

    if(noofvalues == 0)
        {
            theArray[0] = theName;
            noofvalues++;
        }
    else
        {
            for(step = noofvalues - 1; step >= location; step--)
                {
                    theArray[step + 1] = theArray[step];
                }
            theArray[location] = theName;
            noofvalues++;
        }
    return noofvalues;
}

3 个答案:

答案 0 :(得分:1)

因为它看起来像是家庭作业,所以我根本不会提供任何代码 (否则,我会解决作业并且你不会学到任何东西),只有想法可能这样做的算法。

  • 将用户插入的姓氏存储在变量中。让我们说,这个变量是lastInsertedName
  • 浏览数组中的所有元素,然后在其中搜索String。当您在数组中找到lastInsertedName时,将索引存储在变量中,让我们说indexFound并停止循环。
  • 如果indexFound大于或等于0:
    • 将阵列中indexFound开始的所有元素移回一个位置。
    • 减少充当数组大小的变量。

答案 1 :(得分:0)

使用清单:

public static int addOne(List names, int location, String theName, int noofvalues)
{
    names.add(location, theName);
    return names.size();
}

public static void deleteOne(List names, int location){
    names.remove(location);
}

答案 2 :(得分:-1)

使用此方法从数组中删除项目:

   public static String[] removeOne(String[] array, String var){
        if (array==null){
            return new String[]{};
        }
        String[] array2 = new String[array.length-1];
        boolean removed = false;
        for (int i=0;i<array.length;i++){
            if (!array[i].equals(var)){
                if (i==array.length-1 && !removed){
                    return array;
                }
                if (removed){
                    array2[i-1] = array[i];
                }else{
                    array2[i] = array[i];
                }
            }else{
                removed = true;
            }
        }
        return array2;
    }