小编Sri*_*man的帖子

Java 8从Map中的匹配值中提取所有键

我是Java8的新手,我有一个场景,我需要从Map中检索与对象匹配的所有键.

想知道是否有办法获取所有密钥而不再从列表中重复它们.

Person.java
private String firstName;
private String lastName;
//setters and getters & constructor


MAIN Class.

String inputCriteriaFirstName = "john";   

Map<String, Person> inputMap = new HashMap<>();
Collection<Person> personCollection = inputMap.values();
List<Person> personList = new ArrayList<>(personCollection);
List<Person> personOutputList = personList.stream()
.filter(p -> p.getFirstName().contains(inputCriteriaFirstName ))
.collect(Collectors.toList());


//IS There a BETTER way to DO Below ??

Set<String> keys = new HashSet<>();
for(Person person : personOutputList) {
    keys.addAll(inputMap.entrySet().stream().filter(entry -> Objects.equals(entry.getValue(), person))
        .map(Map.Entry::getKey).collect(Collectors.toSet()));
}
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream

11
推荐指数
3
解决办法
7527
查看次数

根据另一个列表中的条件删除一个列表中的某些元素

我是Java8的新手.我需要根据某些标准(来自另一个列表)在一个列表中减去/删除POJO并在UI上显示它.

迭代一个列表并搜索条件删除对象将原始列表发送到UI

Children.java
private String firstName;
private String lastName;
private String school;
private String personId;
// Setters and getters.

Person.java
private String personId;
private String fullName;
private String address;
// Setters and Getters.
Run Code Online (Sandbox Code Playgroud)

..主要代码..

  // populated by other methods.
  List<Person> personList;

 //Connect to DB and get ChildrenList
 List<Children> childrenList = criteria.list();

 for(Children child : childrenList) {
    personList.removeIf(person -> child.getPersonId().equals(person.getPersonId()));
 }
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来处理循环?任何帮助表示赞赏.

java foreach lambda stream java-8

5
推荐指数
1
解决办法
1945
查看次数

Hibernate @Formula 设置参数

我想知道我们是否可以通过应用程序在@Formula中设置自定义参数。

@Formula(TAX_RATE * price)
private Integer totalPrice;
Run Code Online (Sandbox Code Playgroud)

TAX_RATE 不是数据库中的列,其中“价格”数据库中的列。

如何通过应用程序在查询运行时设置 TAX_RATE 值?

有人建议使用 Hibernate Interceptor 'onPreparedStatement' 方法。还有更好的办法吗?

java hibernate jpa

5
推荐指数
0
解决办法
1691
查看次数

为什么 LIMIT 子句对于 JSON_ARRAYAGG 函数失败?

使用 JSON_ARRAYAGG 函数时,限制子句似乎不起作用。

有没有更好的方法来实现功能?

SELECT * FROM USER_TABLE ORDER BY RAND() LIMIT 2;
--> Gives me 2 random employee details - which is perfect.

SELECT JSON_ARRAYAGG(JSON_OBJECT('userId', user_id)) FROM USER_TABLE ORDER BY RAND() LIMIT 2;
--> Gives me ALL the employee details. - which is INCORRECT.
Run Code Online (Sandbox Code Playgroud)

mysql

2
推荐指数
1
解决办法
735
查看次数

标签 统计

java ×3

java-8 ×2

lambda ×2

foreach ×1

hibernate ×1

java-stream ×1

jpa ×1

mysql ×1

stream ×1