有没有一种方法可以使用java流将两个String相互比较?

时间:2019-08-22 11:45:55

标签: java list java-8 java-stream

此方法比较两个字符串。其中之一来自物体。如果字符串匹配,则ID由对象返回。


    private static Long getDefaultKag(Long mandandId) {
        List<MandantKagAccountEntity> mandantKagAccountEntities = new MandantKagAccountManager().findAllKags(mandandId);
        for (MandantKagAccountEntity mandantKagAccountEntity : mandantKagAccountEntities) {
            if (mandantKagAccountEntity.getKagText().equals("Default_kag")) {
                return mandantKagAccountEntity.getMandantKagId();
            }
        }
        return null;
    }


有什么办法可以解决流问题吗?我的方法,但是我无能为力了。

    private static long getDefaultKag(Long mandandId) {
        return new MandantKagAccountManager().findAllKags(mandandId).stream()
                .filter(m -> m.getKagText().equals("Default_Kag"))
                ...
                ...
                ...
    }

您知道如何解决此问题吗?我还想知道两种变体中的哪一种对大量数据更有效。

2 个答案:

答案 0 :(得分:5)

替换

Arrays.stream(actMsg.split("\n"));

...
...
...

答案 1 :(得分:0)

我认为它将解决问题

      private static long getDefaultKag(Long mandandId) {
                MandantKagAccountManager mandantKagAccountManager=new MandantKagAccountManager().findAllKags(mandandId).stream()
                        .filter(m -> m.getKagText().equals("Default_Kag")).findFirst()
                        .orElse(null);
              if(mandantKagAccountManager!=null)
                    return mandantKagAccountManager.getMandantKagId()
               return null;
}