本问题已经有最佳答案,请猛点这里访问。

如何从Java ARAYLIST中筛选出一些东西,如:

你好吗?

你怎么做

迈克

过滤器是"怎样"的,它可以去除乔和迈克。

这可能有助于stackoverflow.com/questions/122105/…

最好的解决方案是使用其他的收集数据结构,而不是arraylist:code.google.com/p/google-collections

在Java-8中,他们引入了以Predicate为参数的方法removeIf。

所以很容易做到:

List list = new ArrayList<>(Arrays.asList("How are you",

"How you doing",

"Joe",

"Mike"));

list.removeIf(s -> !s.contains("How"));

调用需要API级别24

也许最好的方法是用番石榴

List list = new ArrayList();

list.add("How are you");

list.add("How you doing");

list.add("Joe");

list.add("Mike");

Collection filtered = Collections2.filter(list,

Predicates.containsPattern("How"));

print(filtered);

印刷品

How are you

How you doing

如果要将筛选后的集合作为列表,可以使用此项(也可以从guava获取):

List filteredList = Lists.newArrayList(Collections2.filter(

list, Predicates.containsPattern("How")));

集体2中的2是什么?

DavoudTaghawi Nejad,这可能是因为在标准Java中已经有EDCOX1 1类。所以很明显哪个类是哪个类,如果它们在一个类中使用,那么您不必使用完全限定名来区分它们。

在android中,它不能解决谓词作为谓词时的给出错误。

知道了。。我使用了错误的库..现在我用的是guava-16.0.1.jar

如何过滤不是"如何"的字符串?

@泰美得使用not():filter(list, not(Predicates.containsPattern("How"))。

遍历列表并检查是否包含字符串"how",如果包含字符串,则将其删除。您可以使用以下代码:

// need to construct a new ArrayList otherwise remove operation will not be supported

List list = new ArrayList(Arrays.asList(new String[]

{"How are you?","How you doing?","Joe","Mike"}));

System.out.println("List Before:" + list);

for (Iterator it=list.iterator(); it.hasNext();) {

if (!it.next().contains("How"))

it.remove(); // NOTE: Iterator's remove method, not ArrayList's, is used.

}

System.out.println("List After:" + list);

输出:

List Before: [How are you?, How you doing?, Joe, Mike]

List After: [How are you?, How you doing?]

下一步()在第一次调用它时返回什么?

第一次调用it.next()将返回集合(list)中的第一个项。

我喜欢这个,因为它是最简单的,不涉及第三方图书馆。

给自己写一个过滤函数

public List filter(Predicate criteria, List list) {

return list.stream().filter(criteria).collect(Collectors.toList());

}

然后使用

list = new Test().filter(x -> x > 2, list);

这是Java中最简洁的版本,但是需要JDK 1.8来支持lambda演算。

我同意先前的答案,谷歌的番石榴可能在这里帮助很大,可读性方面:

final Iterables.removeIf(list, new Predicate() {

@Override

public boolean apply(String input) {

if(input.contains("How")) { //or more complex pattern matching

return true;

}

return false;

}

});

请注意,这基本上是一个guava的副本——如何根据谓词从列表中删除,以跟踪删除的内容?

由于您没有给我们太多信息,我假设您编写代码的语言是C。首先:首选System.Collections.Generic.List而不是ArrayList。第二:一种方法是循环遍历列表中的每一项,并检查它是否包含"how"。另一种方法是使用LINQ。下面是一个快速的例子,它过滤掉了所有不包含"如何"的项目:

var list = new List();

list.AddRange(new string[] {

"How are you?",

"How you doing?",

"Joe",

"Mike", });

foreach (string str in list.Where(s => s.Contains("How")))

{

Console.WriteLine(str);

}

Console.ReadLine();

"因为你没有给我们很多信息",但有你的信息,帖子被标记为Java。

@新建大检查编辑历史记录…StAccOfFult.COM/PASS/9146224/修订"Java"标签在该答案之后被添加。

java arraylist 过滤_关于java:ArrayList过滤器相关推荐

  1. java脏字过滤_脏字过滤

    1.[文件] SensitiveWordFilter.java ~ 7KB 下载(141) package com.forgov.sharpc.infrastruture.util; import s ...

  2. java正则表达式 匹配()_学习Java正则表达式(匹配、替换、查找)

    import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public c ...

  3. java核心教程_核心Java教程

    java核心教程 Welcome to Core Java Tutorial. I have written a lot on Core Java and Java EE frameworks. Th ...

  4. java 包命名_【Java】包的命名规则

    命名规范 包:所有单词的字母小写,之后每个单词用-隔开,如 org.nemo.demo 常量:所有单词的字母大写,之后每个单词用_隔开,如 FLAG 类:所有单词的首字母大写,如 TestJava p ...

  5. java 图片效果_使用Java进行图片底片化效果处理

    使用java代码读取图片,并进行底片化处理 util importjava.awt.image.BufferedImage;importjava.io.File;importjava.util.Arr ...

  6. java 分割一个_分割java

    [java]分割字符串工具类,霸气 jdk自带的 java 分割字符串,分割string,可以根据多个条件去分割.比如逗号,分号,逗号或者分号. 比如一个字符串:"abc,def;gh,ij ...

  7. java字符存储_用java的类集框架做一个字符存储器(15)

    11.这是java的关于java的类集框架做一个字符存储器的源代码可以直接进行编译运行,希望大家能够从中获益良多. package niming; //导入ArrayList这个类 import ja ...

  8. java 数据结构实例_数据结构(Java)——栈的实例

    惟大英雄能本色,是真名士自风流 --易中天(百家讲坛) 1.表达式的转换 1.1 中缀表达式转前缀表达式 中缀表达式转前缀表达式有许多的方式,有加括号去除法.语法树遍历法.堆栈处理法1. 测试程序的实 ...

  9. java 进程运行时间_将Java类作为子进程运行

    java 进程运行时间 我本周需要将Java类(而不是jar)作为子进程运行. 更确切地说,我想从测试内部产生一个新进程,而不是直接在测试内部(进程内)运行它. 我不认为这是幻想或复杂的事情. 但是, ...

最新文章

  1. Kinect学习(四):提取深度数据
  2. PHP框架 one 1.6.0 发布
  3. 【C++深度剖析教程30】C++中抽象类和接口
  4. ant design Modal关闭时清除数据的解决方案
  5. mac下自带apache
  6. unity3d生命周期
  7. 数学趣题——渔夫抓鱼问题
  8. 2014年最新前端开发面试题(题目列表+答案 完整版)
  9. JSP 内置对象request常见用法
  10. (PASS)java中打印当月的日历的每一天
  11. 贪吃蛇c语言代码 链表,链表贪吃蛇 附代码
  12. 《神经网络与深度学习从理论到实践-邱锡鹏》笔记(持续更行ing)
  13. 【python】实战:“唱啥”app后台开发
  14. pandas面板(Panel)
  15. QWebEngineView崩溃及替代方案
  16. 使用 vue-waterfall2插件 vue 瀑布流
  17. web前端CSS---关于text-align设置为justify的相关内容
  18. C++程序避免触发 Win7下的程序兼容助手
  19. Linux下玩转Dota2
  20. python3判断变量存在_Python3基础 list in/not in 判断一个变量是否在列表中存在

热门文章

  1. 复制带随机节点的链表
  2. Java 高级特性 --- 反射
  3. mesos marathon mysql_Mesos和Marathon简介
  4. layer加载的页面偶尔出现空白_Layer-Cake 模式的设计
  5. Markdown入门
  6. 归档和解档-Archiver
  7. php mysql 反斜杠_MySQL中如何插入反斜杠,反斜杠被吃掉,反斜杠转义(转)
  8. 现代程序设计 作业 第1次
  9. python读取大文件内容_python读取大文件
  10. docker 安装 oracle12,Centos7下利用docker安装oracle12c