基于某些条件在Android中过滤ArrayList

3

我在安卓中有一个ArrayList,其中包含多个名称。假设用户输入了R,那么我想计算在ArrayList中以R开头的名称有多少个。例如,如果ArrayList包含Ashok、Bimal、Ram、Raju、Sunita,则应返回2,因为有2个名称以R开头。

5个回答

7
    int count = 0;
    ArrayList<String> _list;//ur arraylist with names
    for (String names : _list) {
        if (names.startsWith("R")) {
            count++;
        }

    }
    System.out.println(count);

谢谢。现在我想要的是,如果用户输入了R,那么只有以R开头的名字会显示在屏幕上。 - user3061048

4

遍历ArrayList,当检查结果为true时,增加一个整数变量。


虽然我为这个回答点赞,因为它确切地回答了问题,但我猜@user3061048实际上是指列表的完整搜索功能。 - FD_
2
当然。但是如果他想要一个更详细的答案,他必须在问题上花费更多时间。我不会替他完成工作。如果他想要帮助为什么他的尝试不起作用,我很乐意花时间进行调试。 - doorstuck
1
是的,我完全同意你的观点。 - FD_

0
    ArrayList<String> list = new ArrayList<String>();
    list.add("Ashok");
    list.add("Bimal");
    list.add("Ram");
    list.add("Raju");
    list.add("sunita");
    int count  = 0;
    for(String s: list){
        if(s.startsWith("R")){
            count++;
        }
    }
    System.out.println(count);

0
在你的onCreate方法中
int countToShow=counterMethod(character);
TextView  showCount=(TextView)findViewById(idOfYourTextView);
showCount.setText(String.valueOf(count));

在您的活动中创建另一个方法,如下所示:
public int counterMethod(String character){
    int count=0;
    for(int i=0; i<arrayListName.size();i++)
    {
        String name=arrayListName.get[i];
        if(name.startswith(character))
            count++;
    }
return count;
}

-2
尝试以下代码...
enter code here
List<String> list = new ArrayList<String>();
list.add("How are you");
list.add("How you doing");
list.add("Joe");
list.add("Mike");

 Collection<String> filtered = Collections2.filter(list,
Predicates.containsPattern("How"));
 print(filtered);

1
请注意,这不是核心Java,而是需要使用Guava库。 - Caleryn
复制猫 https://dev59.com/dGox5IYBdhLWcg3whUum#9149673 - Sunil Adhyaru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接