如何将特定数组元素设置为null,然后将这些元素移动到数组的末尾

时间:2016-04-08 14:06:22

标签: java arrays string sorting methods

我知道ArrayList可以更简单地完成这项工作,但这只适用于数组,所以我坚持使用它。

到目前为止,这是我的方法:

public boolean remove( String name) {
    int temp = 0;
    for (int i = 0; i<counter; i++) {
        if (friends[i].equals(name)) {
            friends[i]=null;
            for (int j = i; j > counter; j++) {
                friends[j] = friends[j+1];
            }

            return true;
        }
    }

    return false;
}

我想要的结果是:

String[] friends = {"Sean", "James", "Andrew", "Garfield", "Patrick"};
myfriends.remove("James");
System.out.println(Arrays.toString(friends));

控制台输出:Sean, Andrew, Garfield,Patrick, null

1 个答案:

答案 0 :(得分:1)

这是使用调试器很有用的地方。

我会将j > counter更改为j < counter并在最后设置friends[counter-1] = null;,不设置friends[i] = null;,因为您要做的第一件事就是覆盖它。< / p>

注意:您的代码假设没有重复项。