java - 部分填充数组,删除重复数组

标签 java arrays arraylist

我正在用 Absolute Java 做一项练习。
问题是:编写一个静态方法,该方法将部分填充的字符数组作为形式参数,并从数组中删除所有重复的字母。该方法应该有两个形式参数:一个数组参数和一个 int 类型的形式参数,该参数给出所使用的数组位置的数量。删除该字母后,剩余的字母将移动一个位置以填补空白。

我想到的是使用hashset,这应该是最简单的方法。
我想到的另一种方法是将 array 转换为 list ,删除重复元素,然后将其传回。
这对我来说是一个问题:如何编写该代码? (我为什么要问这个?)

public static char[] deleteRepeats(char[] array, int size)
{
    ArrayList<String> newarray = new ArrayList<String>();
    newarray = Arrays.asList(array);
}

它说类型不匹配,我该如何更正代码?

另一个问题是:回到最初的问题,如何使用部分填充的数组来实现?

最佳答案

ArrayList<String> newarray = new ArrayList<String>();

是Generic类型String的数组列表。但是你的参数是 char类型。因此它们不可互换。这就是抛出 Type Mismatch 的原因错误。

您使用 Set 是对的是实现它的最简单的方法。但我不知道该练习是否需要您手动完成这项工作。

但是,如果您无法使用包装类 Character并且必须使用char输入然后你必须进行手动转换,如果你想得到 Set为您完成替换工作。

编辑:

您不能使用Arrays.asList()方法来获取这样的列表。该方法将 java 对象作为参数而不是原始类型。当你通过 char[]它看到的唯一对象是数组本身。

所以结果是 List<char[]>因为泛型不支持原始类型。

关于java - 部分填充数组,删除重复数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13795111/

相关文章:

java - 在listviewitem中设置颜色

ruby - 收集所有不在使用 Ruby 的

python - 分配给 for 循环值

java - 是否有适用于 Java 的高效 2D ArrayList 类?

java - 动态地将 ListView 上的文本加粗到指定单词

java - SimpleDateFormat 未捕获无效的第 13 个月

java - org.powermock.reflect.exceptions.TooManyConstructorsFoundException : Several matching constructors found

java - 具有泛型的构建器模式和扩展类上的静态内部工厂

java - 将 arraylist 的一些元素添加到 JSONArray 并使用 Volley 进行 POST

c++ - 尝试在 C++ 中动态调整数组大小时崩溃?