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?您得到了更新。这里真正的答案是:你应该退后一步,看看如何/什么是二进制搜索。你的评论意味着你认为这是一个可以应用于任何事情的神奇的东西。事实并非如此。