我正在编写一种方法来删除arrayList
中的最小项目。我已经找到了正确的最小项目,但是,老实说,我对删除方法没有任何线索,我相信我的代码的后半部分完全没用。任何帮助表示赞赏!
public Comparable remove(){
Iterator<T> iterator=iterator();
T min = iterator.next();
while (iterator.hasNext())
{
T next = iterator.next();
if (min.compareTo(next) > 0)
min = next;
size--;
**Bag<T> newBag=new Bag<T>();
for (int i=0; i<size;i++){
newBag=(Bag<T>) data[i];
System.out.println(newBag);**
}
}
return min;
}
答案 0 :(得分:2)
使用Iterator是个好主意(它是线程安全的)但你不需要在这里使用interator,因为你没有在迭代时修改列表,也你不需要排序列表找到minmum元素,因为这很昂贵。
你尝试过的很好但是不了解你的一些代码但是尝试这样:
public void remove(List<T> list){
T min = Collections.min(list);
list.remove(min)
}
答案 1 :(得分:2)
您可以从列表中获取最小值:
Collections.min(list);
然后你可以从列表中删除:
list.remove(Collections.min(list)));
答案 2 :(得分:1)
我们可以从ArrayList中删除一个对象。你应该做的是跟踪找到最小值的索引,然后删除该元素。
e.g。
arrayList.remove(index);
答案 3 :(得分:0)
您可以使用内置功能轻松完成。
ArrayList
使用Collections.min(Name_Of_ArrayList);
它会在ArrayList
中为您提供最小的对象,将该值保存在Object
变量中
然后,您可以使用Name_Of_ArrayList.remove(Object);
以下是代码:
Object minimum= Collections.min(Name_Of_ArrayList);
Name_Of_ArrayList.remove(minimum);