当前位置: 首页 > 知识库问答 >
问题:

Java 8中的交叉匹配ArrayList

禄豪
2023-03-14

因此,我想在一个泛型类列表中交叉匹配数据,其中需要检查名称与姓氏的匹配,如果存在匹配,则返回数据或返回布尔值。这是我想到的

list.stream().forEach(x -> {
    boolean test = list2.stream()
            .anyMatch(tst -> tst.getLastName() == x.getStuName());
    if (test) {
        test2.setBool(test);
    }
});
System.out.println("Match > " + test2.getBool());

这返回TRUE,因为我使用GETTER AND SETTER通过设置布尔值从lambda表达式返回布尔值。

所以我在寻找最简单的lambda表达式来实现这一点?请问外面有人吗。

共有2个答案

江子石
2023-03-14

使用两个使用谓词的短路anyMatch调用嵌套流如何:

boolean test = list.stream()
    .map(FirstObject::getLastName)
    .anyMatch(y -> list2.stream()
             .map(SecondObject::getStuName)
             .anyMatch(x -> x.equals(y)));

test2.setBool(test);
严宏朗
2023-03-14

您可以使用筛选器:

  long count = list.stream().filter(e -> e.equals(someString)).count();

但这是在O(n)中完成的。有一个更好的方法......不是普通的列表,而是使用Set,因此将List转换为Set并检查它是否存在:

Set set = new HashSet(list);

if (set.contains(someString)) return true;

如果您在任何检查之前转换列表一次,然后只使用该集,则检查是否包含将在O(1)中完成。取决于你是如何获得第一名的?你在节目开始时有列表吗?然后在课堂上将其列为静态列表。你晚些时候收到吗?它多久改变一次?即使是这样,也要确保它的更新是分开的,这样你仍然会有O(1)。

 类似资料:
  • 试图实施更大规模的井字游戏 这个游戏可以有超过3行和3列 每当发现4个连续的模式(水平,垂直或交叉) 选手是赢家 我已经找到了水平和垂直匹配的实现方法 但是找不到一种方法来识别2d数组中某个字符的交叉模式 考虑下面的二维数组 ` ` 如何检查“*”字符在这个2d数组中是否有四个连续的交叉模式

  • 我已经将JVM的Xmx参数设置为5120,但是当java进程(tomcat)运行时,我看到MaxHeapSize与Xmx值不匹配,它停留在2570,这对我来说很奇怪,对此任何想法都非常感谢!! PS的输出: /usr/bin/java-dnop-djava.util.logging.manager=org.apache.juli.classloaderlogmanager ITGC-djava.e

  • 在二分图中,左边有n个节点,右边有m个节点。节点的顺序是从1到n和从1到m。左边的节点连接到右边的节点。没有连接所有节点。对于例如: 我想知道如何像一些用户提到的那样,通过使用二进制索引树来解决这个问题。我用O(n^2)algo求解,得到Tle。 这不是家庭作业。昨天我学习了BIT,正在寻找一些问题,所以我遇到了这个。告诉我诀窍。请不要写整个程序。

  • 函数 A 数据操作 1; 数据操作 2; 函数 B 数据操作 3; -> 函数 A(); 函数 C 数据操作 4; -> 函数 A(); 则称,A 为 B,C 的交叉操作。 如果,A,B,C 都需要保证事务性,则 A 为 B, C 的交叉事务 Nutz.Dao 的原子操作支持事务嵌套,所以你可以这么实现这三个函数: 函数 A Tran

  • 交叉验证 那么什么时候才需要交叉验证呢?交叉验证用在数据不是很充足的时候。比如在我日常项目里面,对于普通适中问题,如果数据样本量小于一万条,我们就会采用交叉验证来训练优化选择模型。如果样本大于一万条的话,我们一般随机的把数据分成三份,一份为训练集(Training Set),一份为验证集(Validation Set),最后一份为测试集(Test Set)。用训练集来训练模型,用验证集来评估模型预

  • 问题内容: 是否有 markdown 语法等效于: 问题答案: Take me to pookie 应该是正确的markdown语法,以跳转到名为pookie的锚点。 要插入该名称的锚点,请使用HTML: Markdown似乎不介意将锚点放在哪里。标头中有用的地方。例如: 效果很好。(我在这里进行了演示,但是SO的渲染器去除了锚点。) 注意自我结束标记和对 本文的早期版本建议使用,对XHTML使用