如何在java中过滤这个arraylist

ve7v8dk2  于 2021-06-30  发布在  Java
关注(0)|答案(3)|浏览(314)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

26天前关门了。
改进这个问题
我想知道如何过滤帖子列表,以获得所有由约翰写的帖子
这是我的密码:

Posts = new ArrayList<>();
    authors = new ArrayList<String>();
    authors.add("John");
    tags = new ArrayList<String>();
    tags.add("space");
    Posts.add(new Post(2, "First Post",authors, "Content", tags));
evrscar2

evrscar21#

有一个方便的删除方法。。。

posts.removeIf(p -> !p.getAuthors().contains("John"));

那个 -> 表示函数。我们要告诉警察 removeIf 函数:要确定是否需要删除列表中的某个条目,请对其运行函数。函数,然后说:给定 p (这是post对象),对其调用getauthors,然后调用 .contains("John") 在那上面。然后翻转布尔结果,瞧。如果为真,请将其删除。

vlju58qv

vlju58qv2#

如果您需要通过它的键(在本例中是john)找到某个东西,那么可以使用hashmap。它会给你钥匙的价值。因此,您可以在一个字符串数组列表和不同的autor中创建不同的post,如下所示:

HashMap<String, ArrayList<String>> autors = new HashMap<String, ArrayList<String>>();
    ArrayList<String> posts= new ArrayList<String>();
    posts.add("Hello");
    posts.add("World.");
    hashmap.put("John", posts);
    System.out.println("Posts by John:"  + autors.get("John"));
vhmi4jdf

vhmi4jdf3#

试试这个:

posts.stream()
        .filter(n -> n.getAuthors().contains("John"))
        .collect(Collectors.toList());

相关问题