Java 自定义列表上的二进制搜索-android
在我的Java 自定义列表上的二进制搜索-android,java,android,collections,Java,Android,Collections,在我的回收视图的适配器中,我比较了如下两个列表: for (int i = 0; i < existImages.size(); i++) { if (jsonInstagramList.get(position).getId().equalsIgnoreCase(existImages.get(i).getImageID())) { holder.insertedProduct.setVisibility(View.VISIBLE); break; } else
回收视图的适配器中,我比较了如下两个列表:
for (int i = 0; i < existImages.size(); i++) {
if (jsonInstagramList.get(position).getId().equalsIgnoreCase(existImages.get(i).getImageID())) {
holder.insertedProduct.setVisibility(View.VISIBLE);
break;
} else {
holder.insertedProduct.setVisibility(View.GONE);
}
}
for(int i=0;i
existImages
是私有列表existImages
和jsonInstagramList
is私有列表jsonInstagramList代码>
如何使用from二进制搜索
来加速此搜索或其他方式?根据您的上下文,这可能非常简单
Collections类中已经实现了二进制搜索(链接到)。因此,您只需调用该方法
当然,请记住:
使用二进制搜索算法在指定列表中搜索指定对象。列表必须根据其元素的自然顺序按升序排序
这意味着您的列表应该已经排序。因此,真正的答案是首先看看您当前的循环:
jsonInstagramList.get(position).getId().equalsIgnoreCase(existImages.get(i).getImageID()
要找到它,你根本无法将其转换为二进制搜索
换句话说:如果查找元素的代码被频繁调用,需要使用二进制搜索,那么您必须提前准备数据
含义:二进制搜索在相同类型的元素的排序列表中查找一个键。因此,您首先必须创建一个包含您想要搜索的内容的列表 根据您的上下文,这可能非常简单
Collections类中已经实现了二进制搜索(链接到)。因此,您只需调用该方法
当然,请记住:
使用二进制搜索算法在指定列表中搜索指定对象。列表必须根据其元素的自然顺序按升序排序
这意味着您的列表应该已经排序。因此,真正的答案是首先看看您当前的循环:
jsonInstagramList.get(position).getId().equalsIgnoreCase(existImages.get(i).getImageID()
要找到它,你根本无法将其转换为二进制搜索
换句话说:如果查找元素的代码被频繁调用,需要使用二进制搜索,那么您必须提前准备数据
含义:二进制搜索在相同类型的元素的排序列表中查找一个键。因此,您首先必须创建一个包含您想要搜索的内容的列表 如何在两个列表上使用from binarySearch?您已获得更新。这里真正的答案是:你应该退后一步,看看如何/什么是二进制搜索。你的评论意味着你认为这是一个可以应用于任何事情的神奇的东西。事实并非如此。我如何在两个列表上使用from binarySearch?您得到了更新。这里真正的答案是:你应该退后一步,看看如何/什么是二进制搜索。你的评论意味着你认为这是一个可以应用于任何事情的神奇的东西。事实并非如此。