java是迭代集合类的最佳方法?
伙计们,我想问一下迭代集合类的最佳方法
private ArrayList<String> no = new ArrayList<String>();
private ArrayList<String> code = new ArrayList<String>();
private ArrayList<String> name = new ArrayList<String>();
private ArrayList<String> colour = new ArrayList<String>();
private ArrayList<String> size = new ArrayList<String>();
// method for finding specific value inside ArrayList, if match then delete that element
void deleteSomeRows(Collection<String> column, String valueToDelete) {
Iterator <String> iterator = column.iterator();
do{
if (iterator.next()==valueToDelete){
iterator.remove();
}
}while(iterator.hasNext());
}
deleteSomeRows(no, "value" );
deleteSomeRows(code, "value" );
deleteSomeRows(name , "value");
deleteSomeRows(colour ,"value" );
deleteSomeRows(size , "value");
上面代码的问题是,仅仅迭代这些类中的每一个就需要花费大量的时间?有什么办法可以加快速度吗?如果你在乎,请帮忙
# 1 楼答案
您可以简化代码:
您将无法加快ArrayList迭代,尤其是在列表未排序的情况下。你因这个问题而陷入困境。如果对其进行排序并插入逻辑以二进制搜索要删除的项,直到再也找不到为止,则可以加快访问速度
下一个建议与所需时间没有直接关系,但它会给你带来问题
永远不要使用
==
运算符比较字符串对象是否相等。这将导致比较它们的指针值改用这个:
# 2 楼答案
在找到要删除的元素后,尝试暂停