从数组(深度复制)Java中删除重复项


public static boolean testGetUniqueCheckedOutItems() {
String[] items = new String[]{"Carrot","Chicken","Chicken", "Tomato", "Onion","Carrot","Tomato"};
int size = 7;
String[] empty = {};
getUniqueCheckedOutItems(items,size,empty));


public static int getUniqueCheckedOutItems(String[] items, int size, String[] itemsSet) {
itemsSet = new String [items.length];

for (int i =0; i<items.length; i++) {
itemsSet[i] = items[i];
}
for (int i=itemsSet.length-1; i>=0; i--) {
for (int j = i-1; j>=0; j--) {
if (itemsSet[i].equals(itemsSet[j])) {
size--;
}
}
return size;
}

该代码假定返回删除数组中重复项的大小。然而,它假设不删除两个重复项,而只删除一个。所以在这里,由于重复是";胡萝卜、鸡肉、番茄";因此,它假定返回4。然而,它只返回6。

有人能帮我解决这个问题吗?我已经处理这个问题一个半小时了,现在

这有几个语法错误,所以我不确定您是如何获得任何输出的。

  • 方法testGetUniqueCheckedOutItems()没有右大括号
  • 方法getUniqueCheckedOutItems()没有右大括号
  • 并且方法CCD_ 3具有意外的右括号

得到错误值的原因是return语句在outerfor循环中。所以您过早地返回size。您是否错误地输入了代码?

最新更新