Java 搜索ArrayList模型

Java 搜索ArrayList模型,java,android,Java,Android,我想根据itemName获取包含搜索输入的所有项目。在c#中,我可以使用lambda,但我找不到任何android的参考资料 以下是模型类: public class ModelItem { public long itemId; public String itemName; public double price; } 以下是我的清单: public static ArrayList<ModelItem> items; 公共静态数组列表项; 我将使用

我想根据itemName获取包含搜索输入的所有项目。在c#中,我可以使用lambda,但我找不到任何android的参考资料

以下是模型类:

public class ModelItem {
    public long itemId;
    public String itemName;
    public double price;
}
以下是我的清单:

public static ArrayList<ModelItem> items;
公共静态数组列表项;
我将使用列表获取项目。提前感谢。

使用下面的代码

public void getAllItems(ArrayList<ModelItem> items, String searchItem) {
for(ModelItem item : items) {
 if(item.getItemName().contains(searchItem)) {
    // here you are getting item which matches inside your list
}
}
public void getAllItems(ArrayList项、String searchItem){
对于(模型项:项){
if(item.getItemName().contains(searchItem)){
//在这里,您将获得列表中匹配的项目
}
}

嘿,我在github中为您的需求提供了一个示例,您需要在主类中使用QueryTextListener,然后将Filter设置为适配器,如示例所示
请检查此链接:

第一步,将项目复制到
tempList

private ArrayList<ModelItem> items; // You have data into this list
private ArrayList<ModelItem> tempData = new ArrayList<>();
for (ModelItem item : items) {
    tempData.add(item);
}

我想你有一个包含项目的列表视图。现在你想用搜索字符串过滤它们

您必须在自定义适配器中实现可过滤

显示完整代码。既然你是第一个,你能将“相等”部分增强为包含吗?当然,我错了
public void filter(String query) {
   items.clear();
   if (query.length() > 0) {
       for (ModelItem currItem : tempData) {
          // Add data into list, if item is having query string
          if (currItem.getItemName().toLowerCase().contains(query)) {
              mData.add(currItem);
          }
       }
   } else {
       // Adding all the items, if query is empty
       for (ModelItem item : tempData) {
           items.add(item);
       }
   }
   notifyDataSetChanged(); // notify the changes, if you are using an adapter.
}