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语句在outer
for循环中。所以您过早地返回size
。您是否错误地输入了代码?