我已经为ArrayList提供了以下代码,并且必须在此类中编写一个新方法,该方法将从ArrayList中删除所有给定值。我一直在尝试编写这个函数,但由于某种原因无法弄清楚如何访问列表。我必须为LLList做同样的事情,所以我调用了头节点,但我不明白如何访问数组。
function getFrequency(str){
var sorted = str.split("").sort();
var data = [];
for(var i = 0; i <sorted.length; i++){
var last = data[data.length - 1]
if(last && last.character === sorted[i]) last.count++;
else data.push({character : sorted[i], count: 1});
}
return data;
}
答案 0 :(得分:0)
为了帮助你多一点,这里有一个使用给定removeItem
函数的天真解决方案(它可能更有效)。只需阅读并尝试理解它,否则您将遇到麻烦,如果您对此有疑问,请随时提问。
public void removeAll(Object o) {
int i = 0;
while (i < length) {
if (o.equals(items[i])) {
removeItem(i);
} else {
i++;
}
}
}
并测试它:
public static void main(String[] args) {
ArrayList list = new ArrayList(10);
list.addItem("1", 0);
list.addItem("3", 1);
list.addItem("2", 2);
list.addItem("2", 3);
list.addItem("4", 4);
list.addItem("1", 5);
list.addItem("2", 6);
System.out.println(list);
// {1, 3, 2, 2, 4, 1, 2}
list.removeAll("2");
System.out.println(list);
// {1, 3, 4, 1}
}